You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用FuzzyWuzzy对比单列与多列查找缺失的匹配词汇

实现方案

1. 核心逻辑说明

  • 先收集所有对照列的非空合法值,构建全局查找集合,提升查询效率
  • 拆分item_composition列的每一行组分,按;切割并去除每个组分前后空格
  • 过滤出不在对照集合中的组分,拼接后即为该行的输出结果

2. 完全匹配版本代码

你可以在现有代码基础上新增以下内容实现需求:

# ---------------------- 以下是新增实现代码 ----------------------
# 1. 构建对照词汇集合:替换下方列表为你实际需要校验的对照列名,比如示例中的['A','B']或者你业务中的匹配结果列
check_cols = ['A', 'B']
valid_words = set()
for col in check_cols:
    # 排除空值、None以及'None'字符串,去重后加入集合
    not_null_vals = ramen[col].dropna().astype(str).str.strip()
    valid_words.update([v for v in not_null_vals if v not in ['', 'None']])

# 2. 定义单行处理函数
def get_not_exist_composition(composition_str):
    if pd.isna(composition_str) or composition_str.strip() == '':
        return ''
    # 拆分组分并清除每个组分前后空格
    composition_list = [x.strip() for x in composition_str.split(';')]
    # 过滤出不在对照集合里的组分
    not_exist_list = [x for x in composition_list if x not in valid_words]
    # 按要求格式拼接返回
    return ' ; '.join(not_exist_list)

# 3. 应用函数得到结果列
ramen['not_exist_composition'] = ramen['item_composition'].apply(get_not_exist_composition)

# 查看输出结果
print(ramen[['item_composition', 'not_exist_composition']])

3. 可选:模糊匹配版本(容忍拼写误差)

如果需要支持拼写相近就算命中的场景,可以结合你已导入的fuzzywuzzy库实现,设置相似度阈值即可:

# 相似度阈值,可根据业务需求调整,分值范围0-100
SIMILAR_THRESHOLD = 85
valid_words_list = list(valid_words)

def fuzzy_get_not_exist(composition_str):
    if pd.isna(composition_str) or composition_str.strip() == '':
        return ''
    composition_list = [x.strip() for x in composition_str.split(';')]
    not_exist_list = []
    for word in composition_list:
        # 查找最匹配的词汇,返回(匹配值, 得分)
        match_res = process.extractOne(word, valid_words_list, scorer=fuzz.WRatio)
        if not match_res or match_res[1] < SIMILAR_THRESHOLD:
            not_exist_list.append(word)
    return ' ; '.join(not_exist_list)

# 应用模糊匹配函数
ramen['not_exist_composition_fuzzy'] = ramen['item_composition'].apply(fuzzy_get_not_exist)

内容的提问来源于stack exchange,提问作者Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 06:15:03