假设我有一本字典:
dict = {"1" : "A", "2" : "B" , "3" : "C"}
和一个数据框
df = pd.DataFrame()
df["ID"] = pd.Series(["A","B","C"])
df["Desc"] = pd.Series(["Fruits","Vegs","Meat"])
数据框将如下所示:
我将如何替换列
df["ID"]
中的值用字典键,这样我就有 1,2,3
在 df["ID"]
而不是 A,B,C
?
最佳答案
首先创建一个反向映射:
In [363]: dict2 = {v : k for k, v in dict_.items()}
这里的假设是你的值(value)观是独一无二的。现在您可以使用
pd.Series.replace
:In [367]: df.ID = df.ID.replace(dict2); df
Out[367]:
ID Desc
0 1 Fruits
1 2 Vegs
2 3 Meat
使用
pd.Series.map
的替代解决方案:In [380]: df.ID = df.ID.map(dict2); df
Out[380]:
ID Desc
0 1 Fruits
1 2 Vegs
2 3 Meat
另外,我建议您使用与
dict
不同的名称。 ,因为已经有一个具有该名称的内置函数。
关于python - 如何用字典键替换数据框列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45787481/