用字典值替换Pandas Dataframe中的部分字符串

时间:2019-03-04 10:44:37

标签: python regex pandas dataframe

我有一个Pandas DataFrame(df),其中某些单词包含编码替换字符。我想用字典(翻译)中的替换词替换这些词。

translations = {'gr�nn': 'gronn', 'm�nst': 'menst'}
df = pd.DataFrame(["gr�nn Y", "One gr�nn", "Y m�nst/line X"])

df.replace(translations, regex=True, inplace=True)

但是,似乎并没有捕获所有实例。 当前输出:

                0
0         gronn Y
1       One gr�nn
2  Y m�nst/line X

我是否需要指定任何正则表达式模式以使替换也可以捕获字符串中的部分单词?

预期输出:

                0
0         gronn Y
1       One gronn
2  Y menst/line X

1 个答案:

答案 0 :(得分:4)

将翻译内容转换为正则表达式查找/替换字符串:

translations = {r'(.*)gr�nn(.*)': r'\1gronn\2', r'(.*)m�nst(.*)': r'\1menst\2'}
df = pd.DataFrame(["gr�nn Y", "One gr�nn", "Y m�nst/line X"])
df.replace(translations, regex=True)

返回:

    0
0   gronn Y
1   One gronn
2   Y menst/line X