栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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+--------+-----+--------+------+


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/669492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号