【发布时间】:2020-06-21 11:49:17
【问题描述】:
我有一个 pandas 数据框,其中包含几列和大约 20,000 行中的文本。我需要为我选择的正则表达式做一些字符串操作。使用 OR 运算符时,如
pattern = "string1|string2|string3"
一切都很好,脚本大约需要几秒钟,没关系。
但如果我使用 AND(环视)表达式,例如
pattern = "(?=.*string1)(?=.*string2)(?=.*string3)"
它超级慢。我的意思是显然它需要越来越频繁地计算,但它需要几分钟才能完成,即使我只使用 2 个字符串。
有没有办法让 AND 正则表达式算法更有效,它发生在一行中,而不是像链接一样
contains(string1, flags=re.I, regex=True) & contains(string2, flags=re.I, regex=True)
感谢您的帮助
【问题讨论】:
-
为什么不把它放到数据库中呢?如果你有那么多行:数据库可能是要走的路。
-
数据库是什么意思?我正在使用熊猫数据框。
-
我的意思是使用数据库作为示例 sqlite db,然后调用 Regex 进行搜索
-
string1、string2、string3的顺序是否未指定?
标签: python regex pandas dataframe regex-lookarounds