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

如何从pandas DataFrame列中提取匹配指定列表的首个关键词?

代码修改方案

原代码问题根源

  • 多结果返回:原逻辑会提取所有匹配到的关键词并拼接,没有做首个匹配的截断逻辑
  • 短语/末尾匹配失败:两个原因:一是对title做了按空格切分的操作,多词组成的关键词(比如Deep learning)不可能匹配到单个切分词;二是没有统一大小写,列表关键词和title的大小写差异也会导致匹配失败,切分操作也会导致末尾带标点的关键词匹配失败。

修改后代码

mi_lista = ['Automata', 'Pearls', 'Deep learning', 'Patterns']
# 预生成小写关键词列表,用于大小写不敏感匹配
lower_kw = [kw.lower() for kw in mi_lista]

def match_first_keyword(title):
    title_lower = title.lower()
    # 按列表顺序遍历,找到第一个匹配项直接返回
    for i, kw in enumerate(lower_kw):
        if kw in title_lower:
            return mi_lista[i]
    # 无匹配时返回空字符串,可按需调整为None等默认值
    return ''

# 插入新列
df.insert(1, "list", df['title'].apply(match_first_keyword), True)

逻辑说明

  1. 匹配优先级完全遵循mi_lista的关键词排序,排在前面的关键词会优先被匹配,可通过调整列表顺序自定义优先级
  2. 不再拆分title字符串,直接判断完整关键词是否存在,支持多词短语匹配、任意位置的关键词匹配(包括开头、中间、末尾)
  3. 统一转换为小写匹配,避免大小写差异导致的匹配失败,返回结果保留mi_lista中关键词的原大小写格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:45:03