繁体   English   中英

Python熊猫正则表达式非常慢

[英]Python pandas regex very slow

我有一个 Pandas 数据框,里面有几列和大约 20,000 行的文本。 我需要为我选择的正则表达式做一些字符串操作。 使用 OR 运算符时,例如

pattern = "string1|string2|string3"

一切正常,脚本大约需要几秒钟,没关系。

但是如果我使用 AND (lookarounds) 表达式

pattern = "(?=.*string1)(?=.*string2)(?=.*string3)"

它的超级慢。 我的意思是显然它需要越来越频繁地计算但需要几分钟才能完成,即使我只使用 2 个字符串。

是否有某种方法可以制作更有效的 AND regex 算法,该算法发生在一行中并且不像这样链接

contains(string1, flags=re.I, regex=True) & contains(string2, flags=re.I, regex=True)

感谢可能的帮助

如果我们穿插一些锚点,它会变快一点,但不要期望超过 10%。

"^(?=^.*string1)(?=^.*string2)(?=^.*string3)"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM