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

如何在Pandas的列中遍历列表以查找匹配项?

问题描述

现有如下Pandas数据:

meta
['Home', 'grocery', 'cake']
['Home', 'grocery', 'Biscuit', 'Oreo']

需要从术语列表 ['cake', 'biscuit'] 中查找匹配,判断每行meta列的列表是否包含任意一个术语(不区分大小写),最终输出新增Column B列的结果:

metaColumn B
['Home', 'grocery', 'cake']True
['Home', 'grocery', 'Biscuit', 'Oreo']True
解决方案

可以通过apply结合集合的交集操作实现,同时统一大小写忽略大小写差异:

import pandas as pd

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

# 定义术语集合,统一转为小写提升查找效率
terms = {'cake', 'biscuit'}

# 新增Column B列,判断是否存在匹配项
df['Column B'] = df['meta'].apply(lambda x: any(item.lower() in terms for item in x))

print(df)

代码说明

  1. 将术语列表转为小写集合,集合的成员查找效率远高于列表;
  2. 用apply遍历每行的meta列表,对每个元素转小写后检查是否在术语集合内;
  3. any()函数只要有一个元素匹配就返回True,无匹配则返回False。

运行代码后即可得到期望的结果。

内容的提问来源于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 04:22:13