在Python pandas DataFrame中交换值以清理数据的最佳方法是什么

Don*_*ote 3 python pandas data-cleaning

我有一个DataFrame,其中"Name"列中有一些错误.我创建了一个字典,其中键的拼写错误,拼写的值正确.用正确的拼写替换错误拼写的最佳方法是什么?这就是我做的.

for incorrect, correct in incorrect_to_correct.items():
    mask = s_df['Name'] == incorrect
    s_df.loc[mask, 'Name'] = correct
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?有人告诉我,如果你正在使用带有熊猫的for循环,你应该重新考虑你在做什么?有没有更好的方法来清理数据?这种字典方法"错了"吗?我是熊猫新手,任何帮助将不胜感激.谢谢!

jez*_*ael 5

我想你可以使用replacedict:

df.Name = df.Name.replace(incorrect_to_correct)
Run Code Online (Sandbox Code Playgroud)

样品:

df = pd.DataFrame({'Name' : ["john","mary","jon", "mar"]})
print (df)
   Name
0  john
1  mary
2   jon
3   mar

incorrect_to_correct = {'jon':'john', 'mar':'mary'}

df.Name = df.Name.replace(incorrect_to_correct)
print (df)
   Name
0  john
1  mary
2  john
3  mary
Run Code Online (Sandbox Code Playgroud)