python - 如何用字典键替换数据框列值?

标签 python pandas dataframe replace

假设我有一本字典:

dict = {"1" : "A", "2" : "B" , "3" : "C"}

和一个数据框
df = pd.DataFrame()
df["ID"] = pd.Series(["A","B","C"])
df["Desc"] = pd.Series(["Fruits","Vegs","Meat"])

数据框将如下所示:

enter image description here

我将如何替换列 df["ID"] 中的值用字典键,这样我就有 1,2,3df["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/

相关文章:

c# - C++/C# Python 钩子(Hook)

python - 使用 Facebook Prophet 同时预测多个变量

python - 如何根据pyspark中的多个条件选择前n行项目

python - Pandas:根据另一列的匹配项替换列值

python - python.exe 将什么作为参数?

python - 是否有没有循环的 Monty Hall 问题的 Pandas/Numpy 实现?

python - 如果元素等于数据帧 B 中的元素,则从数据帧 A 中删除行的有效方法

python-3.x - 动态创建文件夹并将 csv 文件写入该文件夹

Python Svgwrite 和字体样式/大小

python dataframe根据其他列的条件替换列中的部分字符串