pythonfuzzywuzzy我有一个df里面name字段存放了名称另一个df的f14也存放了名称我想将两个df比对取出匹配度大于90的行如何写代码?
可以使用fuzzywuzzy库中的fuzz.token_set_ratio函数来计算匹配度,代码如下:
from fuzzywuzzy import fuzz
# df1为包含名称的DataFrame
# df2为包含f14的DataFrame
# 创建一个空的DataFrame用于存放匹配结果
result = pd.DataFrame(columns=['name', 'f14', 'match_ratio'])
# 遍历df1中的每一行
for i, row1 in df1.iterrows():
name = row1['name']
# 遍历df2中的每一行
for j, row2 in df2.iterrows():
f14 = row2['f14']
# 计算名称和f14的匹配度
match_ratio = fuzz.token_set_ratio(name, f14)
# 如果匹配度大于90,则将结果添加到result中
if match_ratio > 90:
result = result.append({'name': name, 'f14': f14, 'match_ratio': match_ratio}, ignore_index=True)
# 输出结果
print(result)
其中,fuzz.token_set_ratio函数会将字符串拆分成单词,并计算两个字符串共同拥有的单词数量占总单词数的比例,作为匹配度的指标
原文地址: https://www.cveoy.top/t/topic/cuuM 著作权归作者所有。请勿转载和采集!