如何过滤 Pandas 连续剧
How to filter the Pandas serials
我得到了一个dataframe,一个serial的元素类型是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]))]]
会报错
'int' object is not iterable
如何按列中包含 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]
我得到了一个dataframe,一个serial的元素类型是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]))]]
会报错
'int' object is not iterable
如何按列中包含 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]