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

far*_*een 4 python replace dataframe pandas

假设我有一本字典:

dict = {"1" : "A", "2" : "B" , "3" : "C"}
Run Code Online (Sandbox Code Playgroud)

和一个数据框

df = pd.DataFrame()
df["ID"] = pd.Series(["A","B","C"])
df["Desc"] = pd.Series(["Fruits","Vegs","Meat"])
Run Code Online (Sandbox Code Playgroud)

数据框将如下所示:

在此处输入图片说明

我将如何df["ID"]用字典键替换列中的值,以便我使用1,2,3indf["ID"]而不是A,B,C

cs9*_*s95 8

首先创建一个反向映射:

In [363]: dict2 = {v : k for k, v in dict_.items()}
Run Code Online (Sandbox Code Playgroud)

这里的假设是你的价值观是独一无二的。现在您可以使用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
Run Code Online (Sandbox Code Playgroud)

替代解决方案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
Run Code Online (Sandbox Code Playgroud)

另外,我建议您使用与 不同的名称dict,因为已经有一个具有该名称的内置函数。