簡體   English   中英

如何提高在數據幀中使用模糊匹配的速度?

[英]How to increase the speed of using fuzzy matching in dataframe?

我想使用模糊匹配來檢查數據框是否包含關鍵字。

但是,使用apply非常慢。

有沒有更快的方法?

我們可以使用strre嗎?

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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM