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

如何在Python Pandas生成新列时实现关键词部分匹配

实现关键词部分匹配的修改方案

你的原代码是基于精确单词匹配(按空格拆分文本后匹配整个单词),所以无法捕捉关键词作为子串出现的情况(比如dinner出现在dinner-party里)。要实现部分匹配,我们需要检查每个关键词是否存在于小写后的描述文本中,而不是局限于完整单词。

修改后的代码

import pandas as pd

data = pd.read_excel('path_to_datafile.xlsx')
keywords = ['dinner','government','Agents','entertainment','Agent']
keywords_lower = [item.lower() for item in keywords]

# 用集合推导式收集所有匹配的关键词(自动去重),再用/连接
data['Keyword'] = data['Description'].apply(
    lambda x: '/'.join({kw for kw in keywords_lower if kw in x.lower()})
)

代码解释

  1. 统一大小写:把关键词和描述文本都转成小写,避免大小写敏感的问题(比如Agent和agent都会被匹配)。
  2. 部分匹配检查:遍历每个小写关键词,判断它是否是小写后描述文本的子串——这就实现了部分匹配,不管关键词是单独单词还是嵌入在其他字符串中。
  3. 去重与连接:用集合推导式自动去除重复的匹配结果(比如如果Agent和Agents都匹配同一段文本,会自动去重),最后用/分隔符连接所有匹配的关键词。

可选优化:保留原关键词大小写

如果你希望输出的关键词保留原列表中的大小写(比如匹配到Agents就显示Agents而不是agents),可以稍微调整代码,遍历原关键词并同时检查小写形式:

data['Keyword'] = data['Description'].apply(
    lambda x: '/'.join({kw for kw in keywords if kw.lower() in x.lower()})
)

这样,当描述文本中出现agent时,会匹配到原关键词列表里的Agent和Agents,并保留它们的原始大小写输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 20:52:48