首页 > 解决方案 > 如何过滤 Pandas 连续剧

问题描述

我有一个数据框,一个序列的元素类型是列表。像:

[A, B] [A] [A,C] [A, B, C] 列等

我用了表达

df[[ item == [A] for item in df['Column'].tolist()]]

只能过滤掉只包含A的列,但我希望[A,C]也被选中。如果我使用表达式

df[[ item for item in df['Column'].tolist() if set(item).issuperset(set([A]))]]

会报错

'int' 对象不可迭代

如何按 A 包含在列中的条件过滤数据框。谢谢。

标签: pandaspython-3.6

解决方案


您可以使用applyon Series 检查A每个值是否存在。然后使用布尔索引来过滤数据帧。

import pandas as pd

df = pd.DataFrame({'Column': [['A', 'B'], ['A'], ['A', 'C'], ['A', 'B', 'C']]})

df_ = df[df['Column'].apply(lambda x: 'A' in x)]
print(df_)

      Column
0     [A, B]
1        [A]
2     [A, C]
3  [A, B, C]

推荐阅读