Python 基于特定列上的条件计数筛选数据帧

Python 基于特定列上的条件计数筛选数据帧,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个数据框,如下所示 数据帧{'a':[1,2,3,4,1,2,2,3,1,3,3,4],'b':[3,2,5,6,4,4,4,5,5,6,4,4,2,6,1],'c':[4,4,5,4,3,3,2,4,3,5]} 我想过滤数据帧以返回包含条目的数据帧,这样对于列“a”的每个唯一值,列“c”的计数取值大于3时应大于或等于2 在上面的示例中,我希望输出数据帧 0 1 3 4 2 3 5 5 3 4 6 4 4 4 4 3 5 1 5 5 8 3 4 3 9 1 4 2 10

我有一个数据框,如下所示

数据帧{'a':[1,2,3,4,1,2,2,3,1,3,3,4],'b':[3,2,5,6,4,4,4,5,5,6,4,4,2,6,1],'c':[4,4,5,4,3,3,2,4,3,5]}

我想过滤数据帧以返回包含条目的数据帧,这样对于列“a”的每个唯一值,列“c”的计数取值大于3时应大于或等于2

在上面的示例中,我希望输出数据帧

0  1 3 4
2  3 5 5 
3  4 6 4
4  4 4 3
5  1 5 5
8  3 4 3
9  1 4 2
10  3 5 4
11  3 6 3
12  4 4 5
因为列'a'的值为2,所以'c'>3小于2。我应该放弃所有这些争吵。其他行显示为'a'=1具有相应的计数'c'>3>=2,'a'=3具有相应的计数'c'>3>=2,'a'=4具有计数'c'>3>=2

比较列c中的更大值by,然后计数by和sum Trues值的处理方式与1类似,最后一个过滤器by的处理方式为大于或等于:

比较c列中的较大值by,然后按count Value by和sum Trues处理值,如1,最后按filter by处理较大值或相等值in:

0  1 3 4
2  3 5 5 
3  4 6 4
4  4 4 3
5  1 5 5
8  3 4 3
9  1 4 2
10  3 5 4
11  3 6 3
12  4 4 5
df = df[df['c'].gt(3).groupby(df['a']).transform('sum').ge(2)]
print (df)
    a  b  c
0   1  3  4
2   3  5  5
3   4  6  4
4   4  4  3
5   1  5  5
8   3  4  3
9   1  4  2
10  3  2  4
11  3  6  3
12  4  1  5