Python 基于特定列上的条件计数筛选数据帧
我有一个数据框,如下所示 数据帧{'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 在上面的示例中,我希望输出数据帧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
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