首页 > 解决方案 > 在例如数据框column1中的txt文件中查找字符串并将其替换为数据框column2中的字符串

问题描述

我想通过以下方式从 txt 文件中替换 python 中的字符串:

应在 txt 文件中搜索 column1 中来自 pandas 数据框的单词,并替换为来自第 2 列的同一行中的单词。

导入txt文件和数据框是没有问题的。

例如:

原文:

这是我要更改的第一句话。这是我要更改的字母句子。

数据框:

    column1 column2
0   first   last
1   alpha   beta

期望的结果:

这是我要更改的最后一句话。这是我要更改的beta语句。

我想到了一个使用 column1 作为键和 column2 作为值的字典,但我无法让它工作。半天的搜索没有给我带来任何结果,所有搜索结果都与替换数据框中的值有关,这不是我的问题。

标签: pythonpandas

解决方案


从两列创建字典,然后用 regex 替换re.sub

import re

d = df.set_index('column1')['column2'].to_dict()
print (d)
{'first': 'last', 'alpha': 'beta'}

s = 'This is the first sentence I want to change. This is the alpha sentence I want to change.'

pat = re.compile(r'\b(' + '|'.join(d.keys()) + r')\b')
out = pat.sub(lambda x: d[x.group()], s)
print (out)
This is the last sentence I want to change. This is the beta sentence I want to change.

如果总是可以替换一个单词,也可以使用:

for key in d:
    s = s.replace(key, d[key])
print (s)
This is the last sentence I want to change. This is the beta sentence I want to change.

推荐阅读