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?
首先创建一个反向映射:
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,因为已经有一个具有该名称的内置函数。