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,将只返回等于该子组平均值的所有值