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

Python FuzzyWuzzy: 使用 token_set_ratio 函数匹配 DataFrame 中的名称

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

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