首页 > 解决方案 > 如何将列中的数字映射到数据框中的字符串

问题描述

我有一个 excel 文件,其中有一列如下:

数字(列名)

1 10 11

1 10 13

1 10 12

1 15 23

每行中的每个数字表示一个字母,其中 1 = 'a',2 = 'b'... 等等。

如何将每行的每个数字映射到一个字母?

谢谢

dataframe.meal_swap.replace(映射)

​</p>

线值

0 南

1 南

2 钠

3 钠

4 南

     ...  

3200 1 6 20

3201 1 6 21

3202 1 6 21

3203 1 6 21

3204 1 6 21

名称:meal_swap,长度:3205,dtype:对象

标签: pythonpandas

解决方案


创建所有映射的字典

mappings = {1: 'a', 10: 'b', 15: 'c', 11: 'd', 12: 'e', 13: 'f', 23: 'g'}

利用pandas.DataFrame.replace

df.replace(mappings)

或者,pandas.DataFrame.applymap用于应用地图(效率较低)

df.applymap(lambda x: mappings.get(x, pd.np.nan))

推荐阅读