Python 熊猫串并联替换

Python 熊猫串并联替换,python,performance,pandas,numba,Python,Performance,Pandas,Numba,我有两只熊猫。一个包含文本,另一个是我想在文本中搜索和替换的一组术语。文本中有许多排列,其中同一个单词可以在文本中出现多次,并且有多个术语 我创建了一个循环,可以用一个术语替换文本中的每个单词,但是速度非常慢,特别是考虑到它是在一个大型语料库中工作的 我的问题是: 是否有办法以并行方式运行以下功能以提高速度?或者,功能是否可以使用Numba或其他类型的优化来加速?注意,文本中可能有许多需要替换的排列 文本数据框示例: d = {'ID': [1, 2, 3], 'Text': ['here is

我有两只熊猫。一个包含文本,另一个是我想在文本中搜索和替换的一组术语。文本中有许多排列,其中同一个单词可以在文本中出现多次,并且有多个术语

我创建了一个循环,可以用一个术语替换文本中的每个单词,但是速度非常慢,特别是考虑到它是在一个大型语料库中工作的

我的问题是: 是否有办法以并行方式运行以下功能以提高速度?或者,功能是否可以使用Numba或其他类型的优化来加速?注意,文本中可能有许多需要替换的排列

文本数据框示例:

d = {'ID': [1, 2, 3], 'Text': ['here is some random text', 'random text here', 'more random text']}
text_df = pd.DataFrame(data=d)
d = {'Replace_item': ['<RANDOM_REPLACED>', '<HERE_REPLACED>', '<SOME_REPLACED>'], 'Text': ['random', 'here', 'some']}
replace_terms_df = pd.DataFrame(data=d)
数据帧的示例术语:

d = {'ID': [1, 2, 3], 'Text': ['here is some random text', 'random text here', 'more random text']}
text_df = pd.DataFrame(data=d)
d = {'Replace_item': ['<RANDOM_REPLACED>', '<HERE_REPLACED>', '<SOME_REPLACED>'], 'Text': ['random', 'here', 'some']}
replace_terms_df = pd.DataFrame(data=d)

如果以上任何内容需要澄清,请告知我。谢谢,

您可以使用矢量化方法:

[90]中的
:(text_df.text
.replace(replace_terms_df.Text.tolist(),
替换\u术语\u df.replace \u item.tolist(),
regex=True)
出[90]:

0表示感谢。这很有帮助,可以生成正确的答案,并且看起来更快。考虑到数据的大小,还需要一段时间才能运行,还有什么可以帮助的吗?感谢you@avocet,我不知道这个案子的处理方法。。。AFAIK Numba不适用于字符串。你可以试着写一个Cython函数,但我没有Cython的经验…谢谢MaxU,非常感谢你的帮助。只是想知道我是否可以跟进。在我的数据上尝试它时,我得到以下错误-'sre_constants.error:multiple repeat at position'我猜这与正则表达式有关?如果你知道如何解决,我会非常感激,谢谢@avocet,如果没有可复制的样本,我想我帮不了忙…@avocet,替换
'*s'
-->
'\*s'