可以使用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函数会将字符串拆分成单词,并计算两个字符串共同拥有的单词数量占总单词数的比例,作为匹配度的指标

pythonfuzzywuzzy我有一个df里面name字段存放了名称另一个df的f14也存放了名称我想将两个df比对取出匹配度大于90的行如何写代码?

原文地址: https://www.cveoy.top/t/topic/cuuM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录