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

Python使用字典匹配DataFrame字符串列提取键仅返回单值问题问询

问题根因

你的原函数存在两个逻辑错误导致只返回首个匹配:

  • return_x 初始化的位置错误,放在了key遍历循环内部,每次切换key时会清空之前已匹配的结果
  • return 语句写在了值匹配的判断分支内,只要匹配到第一个值就会直接终止整个函数,不会继续遍历剩余的匹配项

另外你给出的期望输出第三行的diving属于笔误,按照你提供的sport_dic规则,div匹配diving应该返回对应的keyindividual,修正后的期望输出第三行chat_type应为['team','team','individual']

修正后的代码
def type_search(string, dic):
    return_x = []
    # 把return_x初始化移到所有循环外面,避免每次清空
    for key, value in dic.items():
        for v in value:
            if v in string:
                return_x.append(key)
    # 所有遍历完成后再返回结果
    return return_x

df['chat_type'] = df['chat'].apply(lambda x: type_search(x, sport_dic))
运行后得到的结果
chat_type
0    [team, individual]
1    [individual, individual]
2    [team, team, individual]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:15:04