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

如何基于列表格式的tokens和labels列筛选Pandas DataFrame

Pandas 列表类型列的筛选方法

你的原代码失效原因是:直接用==会判断整个列表完全等于目标列表,而不是判断列表是否包含指定元素。要筛选包含多个指定元素的列表列,需要结合apply和all()来实现:

正确代码实现

import pandas as pd

df = pd.DataFrame({'text': ["Hi how","I am fine","Ila say Hi"],
                   'tokens':[['Hi','how'],['I','am','fine'],['Ila','say','Hi']],
                    'labels':[['A','B'],['C','B','A'],['D','B','A']]})

# 同时满足两个筛选条件
filter_condition = (
    df['tokens'].apply(lambda lst: all(x in lst for x in ['Hi', 'Ila'])) &
    df['labels'].apply(lambda lst: all(x in lst for x in ['A', 'D']))
)

# 筛选结果
result_df = df[filter_condition]
print(result_df)

输出结果

text             tokens         labels
2  Ila say Hi  [Ila, say, Hi]  [D, B, A]

原理说明

  • apply(lambda lst: all(x in lst for x in [目标元素列表])):遍历每一行的列表,用all()判断所有目标元素都存在于当前列表中
  • 这种写法兼容列表包含单个或多个元素的场景,只要目标元素全部在列表内就会被选中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:01:01