Python模糊匹配列表性能中的字符串

Python模糊匹配列表性能中的字符串,第1张

Python模糊匹配列表性能中的字符串

编写矢量化 *** 作并避免循环可显着提高速度

导入必要的包裹
from fuzzywuzzy import fuzzimport pandas as pdimport numpy as np
从第一个列表创建数据框
dataframecolumn = pd.Dataframe(["apple","tb"])dataframecolumn.columns = ['Match']
从第二个列表创建数据框
compare = pd.Dataframe(["adfad","apple","asple","tab"])compare.columns = ['compare']
合并-通过引入密钥(自加入)的笛卡尔
dataframecolumn['Key'] = 1compare['Key'] = 1combined_dataframe = dataframecolumn.merge(compare,on="Key",how="left")combined_dataframe = combined_dataframe[~(combined_dataframe.Match==combined_dataframe.compare)]
向量化
def partial_match(x,y):    return(fuzz.ratio(x,y))partial_match_vector = np.vectorize(partial_match)
使用矢量化并通过在阈值上设置阈值来获得期望的结果
combined_dataframe['score']=partial_match_vector(combined_dataframe['Match'],combined_dataframe['compare'])combined_dataframe = combined_dataframe[combined_dataframe.score>=80]
结果
+--------+-----+--------+------+| Match  | Key | compare | score+--------+-----+--------+------+| apple  | 1   |   asple |    80|  tb    | 1   |   tab   |    80+--------+-----+--------+------+


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674741.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存