python - 如何用正确的版本替换 pandas DataFrame 中的短语列表(不是单词或字符串)
问题描述
我知道有很多类似的答案,但没有一个我可以根据我的情况工作。我有一个名称相似的品牌数据框。我需要用一个名称“可乐”替换所有这些“可乐”变体。
问题是像“Coc”这样的替换字符串正在将“Coca Cola”变成“Cokea Cola”。同样,我尝试了正则表达式 \b 和 \w 变体,但随后我会得到“可口可乐”或“可口可乐”等。
wrong_df = pd.DataFrame(["Coca Cola", "Coca", "Cola", "Coke", "Co"])
words_to_replace = ["Coca Cola", "Coca", "Cola", "Co"]
correct_word = 'Coke'
for word in words_to_replace:
string = "r'^" + "{}".format(word) + "\\b"
print(string)
correct_df = wrong_df.replace(to_replace=string, value=correct_word, regex=True)
correct_df
# df_should_look_like_this = pd.DataFrame(["Coke", "Coca", "Coke", "Coke"])
解决方案
只需使用pandas
'replace()
方法。
wrong_df.replace(words_to_replace, correct_word)
结果:
0
0 Coke
1 Coke
2 Coke
3 Coke
4 Coke
推荐阅读
- c# - 如何从 ChartValues 的绑定列表创建多个系列
到 XAML 中的一个 SeriesCollection? - c - “引用调用”和全局变量之间的区别
- javascript - 将键“N”更改为单击鼠标
- python - 如何从字典中删除方括号
- c# - LINQ to Entities 无法识别方法“System.String ToString()”方法 ++++++
- java - 如何使用键作为字符串读取多维 HashMap
- swift - 查看模型组合打破了 mvvm 结构
- qliksense - 数据透视表,每列都从其中扣除前列值
- python-3.x - 如何链接散景布局中所有绘图的轴?
- node.js - 更改 GruntFile 不会更改 livereload 端口