[英]How to deal with Nonetype while fuzzy matching in a dataframe?
[英]How to increase the speed of using fuzzy matching in dataframe?
我想使用模糊匹配來檢查數據框是否包含關鍵字。
但是,使用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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.