Python 熊猫-选择最大值的行\u计数

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

我有一个简单的数据帧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
      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

那么多个相同的事件呢?有没有办法只选择单个最大值?我的意思是,有时候最大值不是唯一的。。。