Python 熊猫-选择最大值的行\u计数
我有一个简单的数据帧df:Python 熊猫-选择最大值的行\u计数,python,pandas,Python,Pandas,我有一个简单的数据帧df: User,C,G 111,ar,1 112,es,1 112,es,1 112,es,2 113,ca,2 113,ca,3 113,ca,3 114,en,4 我将其分组如下: result = df.groupby(['User','G'])['C'].value_counts() 获得: User G 111 1 ar 1 112 1 es 2 2 es 1 113 2 ca 1
User,C,G
111,ar,1
112,es,1
112,es,1
112,es,2
113,ca,2
113,ca,3
113,ca,3
114,en,4
我将其分组如下:
result = df.groupby(['User','G'])['C'].value_counts()
获得:
User G
111 1 ar 1
112 1 es 2
2 es 1
113 2 ca 1
3 ca 2
114 4 en 1
然后,我的目标是只保留每个组中具有最大值\u count
的行,以便生成的数据帧出现:
User G
111 1 ar 1
112 1 es 2
113 3 ca 2
114 4 en 1
我还发现了与类似问题相关的问题,但我不知道如何在我的案例中应用该方法。您可以首先创建一个掩码,以指示特定行在其组中是否为最大值
mask = result.groupby(level='User').apply(lambda g: g == g[g.idxmax()])
mask
User G
111 1 ar True
112 1 es True
2 es False
113 2 ca False
3 ca True
114 4 en True
dtype: bool
然后,选择使用此布尔掩码
result[mask]
User G
111 1 ar 1
112 1 es 2
113 3 ca 2
114 4 en 1
dtype: int64
那么多个相同的事件呢?有没有办法只选择单个最大值?我的意思是,有时候最大值不是唯一的。。。