所有记录都相同,过滤分组的pandas数据帧

时间:2018-04-27 15:35:03

标签: python pandas

我希望将分组的pandas数据帧过滤到组中所有值相同的组。

可重现的数据:

df = pd.DataFrame({'group':['A', 'A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                     'value3':[24, 45, 34, 55, 44, 33, 1, 2, 3, 98, 98, 98]})

我尝试过像......

df.groupby('group').filter(lambda x: x.value3 == x.value3.mean())

预期产出是......

   group  value3
0      C      98
1      C      98
2      C      98

2 个答案:

答案 0 :(得分:4)

您只需添加all

即可
df.groupby('group').filter(lambda x: (x.value3 == x.value3.mean()).all())
Out[409]: 
   group  value3
9      C      98
10     C      98
11     C      98

答案 1 :(得分:3)

您可以将nunique用作其他方法:

df.groupby('group').filter(lambda x: x.value3.nunique() == 1)

输出:

   group  value3
9      C      98
10     C      98
11     C      98