我想使用模糊匹配来检查数据框是否包含关键字。
但是,使用非常慢apply
。
有没有更快的方法?
我们可以使用str
还是re
?
import regex
result = df['sentence'].apply(lambda x: regex.compile('(keyword){e<4}').findall(x)) #slow
非常感谢你。
您为什么在应用内部进行编译?这实际上违背了它的目的。另外,加快apply
通话速度的最佳方法是不使用apply
。
在没有背景信息的情况下,我向您介绍:
p = regex.compile('(keyword){e<4}')
result = [p.findall(x) for x in df['sentence']]
我的测试表明,基于列表理解的正则表达式匹配str
在性能方面取代了方法。好吧,花点儿力气吧,因为它总是取决于您的数据和您要匹配的内容。
re.search
如果您只想要一个匹配项(以提高性能),则可能要考虑使用而不是findall。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句