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

标签 python pandas data-cleaning

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

for incorrect, correct in incorrect_to_correct.items():
    mask = s_df['Name'] == incorrect
    s_df.loc[mask, 'Name'] = correct

有更好的方法吗?有人告诉我,一般来说,如果你在 pandas 中使用 for 循环,你应该重新考虑你在做什么?有没有更好的方法来清理数据?这个字典方法“错”了吗?我是 Pandas 的新手,我们将不胜感激。谢谢!

最佳答案

我想你可以使用 replace通过 dict:

df.Name = df.Name.replace(incorrect_to_correct)

示例:

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

关于python - 在 Python pandas DataFrame 中交换值以清理数据的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41575470/

相关文章:

根据条件重新编码所有变量

python - Travis CI 允许各种 python 版本的多个失败

python - 计算python中每个目标变量的百分比

python - 概率 SVM、回归

python - 重新索引堆叠的 DataFrame

python - 计算 pandas 列中的正值

r - 为什么我不能使用 tidyr extract 和 regex 拆分此列?

python - 从列表列表中随机选择项目给出 ValueError

python - 散点矩阵在图表上显示太多浮点值

pandas - 在 Pandas 中查找不适合日期时间格式的行