我得到了一个数据帧,一个序列的元素类型是list。类似:
列[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]))]]
将得到错误
't'对象不可迭代
如何根据A包含在列中的条件来筛选数据帧。谢谢
您可以在Series上使用apply
来检查每个值中是否存在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]