groupby操作后过滤掉数据框

时间:2019-08-26 19:03:06

标签: python pandas

我正在尝试按以下数据框进行分组,并按分组后的过滤条件进行分组。

如何检查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

1 个答案:

答案 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