Python 在多个文件中搜索多个子字符串的索引

Python 在多个文件中搜索多个子字符串的索引,python,string,algorithm,search,Python,String,Algorithm,Search,我有两个数据帧,如下所示: df1 : contains one variable ['search_term'] and 100000 rows 这些是我想在我的文件中搜索的单词/短语 df2: contains parsed file contents in a column called file_text 此数据框中有20000行和两列['file\u name','file\u text'] 我需要的是文件文本中搜索词的每个外观的索引 我想不出一个有效的方法来执行此搜索 我将st

我有两个数据帧,如下所示:

df1 : contains one variable ['search_term'] and 100000 rows 
这些是我想在我的文件中搜索的单词/短语

df2: contains parsed file contents in a column called file_text
此数据框中有20000行和两列['file\u name','file\u text']

我需要的是文件文本中搜索词的每个外观的索引

我想不出一个有效的方法来执行此搜索

我将str.find()函数与groupby一起使用,但每个文件\文本搜索词大约需要0.25秒(如果有20k个文件*100k个搜索词,这会变得非常长)


任何快速有效的方法都是救命稻草

我记得在我们的一个项目中必须做类似的事情。我们有一个非常大的关键字集,我们想在一个大字符串中搜索它们,并找到所有出现的关键字。让我们调用要在
content
中搜索的字符串。经过一些基准测试后,我采用的解决方案是两次通过的方法:首先使用高度优化的
in
操作符检查
内容中是否存在关键字,然后使用正则表达式查找所有出现的关键字

import re

keywords = [...list of your keywords ...]
found_keywords = []

for keyword in keywords:
    if keyword in content:
        found_keywords.append(keyword)

for keyword in found_keywords:
    for match in re.finditer(keyword, content):
        print(match.start())

我记得在我们的一个项目中不得不做类似的事情。我们有一个非常大的关键字集,我们想在一个大字符串中搜索它们,并找到所有出现的关键字。让我们调用要在
content
中搜索的字符串。经过一些基准测试后,我采用的解决方案是两次通过的方法:首先使用高度优化的
in
操作符检查
内容中是否存在关键字,然后使用正则表达式查找所有出现的关键字

import re

keywords = [...list of your keywords ...]
found_keywords = []

for keyword in keywords:
    if keyword in content:
        found_keywords.append(keyword)

for keyword in found_keywords:
    for match in re.finditer(keyword, content):
        print(match.start())

用输入和预期输出将问题缩短为一个具有代表性的示例。基本上,看看如何提供一个新的框架。如果你有工作代码并且你想改进它,你在这里会有更好的机会:你所说的
dataframe
是什么意思?我从来没有听说过这样的事情。如果你正在寻找精确的匹配,考虑<代码> Re/COD>引擎已经做了非常相似的事情。事实上,我们确实尝试过,但它的性能并没有超过
re.finditer
。请将您的问题简化为一个具有代表性的示例,其中包含输入和预期输出。基本上,看看如何提供一个新的框架。如果你有工作代码并且你想改进它,你在这里会有更好的机会:你所说的
dataframe
是什么意思?我从来没有听说过这样的事情。如果你正在寻找精确的匹配,考虑<代码> Re/COD>引擎已经做了非常相似的事情。事实上,我们确实尝试过,但它的性能并没有超过
re.finditer