我希望将分组的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
答案 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