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
。