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

如何在Pandas列中获取与指定列表的匹配值?

解决方案

完整代码实现

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'meta': [
        ['Home', 'grocery', 'cake'],
        ['Home', 'grocery', 'Biscuit', 'Oreo']
    ]
})

# 指定匹配列表
terms = ['cake', 'biscuit']

# 定义匹配函数:提取meta列表中与terms匹配的元素(不区分大小写)
def get_matches(lst, target_terms):
    # 将目标列表转为小写集合,提升匹配效率
    term_set = set(t.lower() for t in target_terms)
    # 遍历meta元素,筛选匹配项并统一为小写,去重后返回
    return list({item.lower() for item in lst if item.lower() in term_set})

# 生成match value列
df['match value'] = df['meta'].apply(get_matches, target_terms=terms)
# 生成result列:判断是否存在匹配值
df['result'] = df['match value'].apply(lambda x: len(x) > 0)

运行结果

metaresultmatch value
['Home', 'grocery', 'cake']True['cake']
['Home', 'grocery', 'Biscuit', 'Oreo']True['biscuit']

关键逻辑说明

  • 大小写兼容:通过将terms转为小写集合,同时把meta中的元素转小写后匹配,解决原数据大小写不一致的问题,且返回结果统一为小写(符合需求示例)。
  • 高效匹配:使用集合的in操作(时间复杂度O(1))替代列表匹配(O(n)),在terms列表较大时性能更优。
  • 去重处理:通过集合推导式自动去重,避免meta列表中重复出现同一匹配项导致结果冗余。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:42:21