我正在尝试按以下数据框进行分组,并按分组后的过滤条件进行分组。
如何检查col1组的col2对应值是否为True
输入数据框看起来像
col1 col2 col3
1 True p1
1 True p2
1 True p3
1 True p4
2 False p1
2 True p2
2 True p3
2 True p4
3 False p1
3 False p2
3 False p3
3 False p4
4 True p1
4 True p2
4 True p3
4 True p4
我尝试了groupby和filter
filtered_df = df.groupby(['col1']).filter(lambda final_filter : final_filter['col2'] is True)
最终输出看起来像这样
输出:
col1 col2 col3
1 True p1
1 True p2
1 True p3
1 True p4
4 True p1
4 True p2
4 True p3
4 True p4
答案 0 :(得分:1)
您可以在all
的'col2'上使用filter
:
print (df.groupby('col1').filter(lambda x: x.col2.all()))
col1 col2 col3
0 1 True p1
1 1 True p2
2 1 True p3
3 1 True p4
12 4 True p1
13 4 True p2
14 4 True p3
15 4 True p4