Python 按相同的所有记录筛选数据帧

Python 按相同的所有记录筛选数据帧,python,pandas,Python,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.value

我希望将分组的数据帧过滤为组中所有值都相同的组

可复制数据:

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

您只需添加
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

您可以将nunique用作另一种方法:

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

   group  value3
9      C      98
10     C      98
11     C      98

太棒了,谢谢!你能解释一下lambda函数中发生了什么吗?@MattW。通过添加all,将只返回等于该子组平均值的所有值