繁体   English   中英

熊猫-选择最大value_counts行

[英]pandas - select row of maximum value_counts

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

然后,我的目标是仅保留每组具有最大value_count的行,以便出现结果数据框:

User  G    
111   1  ar    1
112   1  es    2
113   3  ca    2
114   4  en    1

我也发现这个问题与类似的问题有关,但是我不知道如何在我的情况下应用该方法。

您可以首先创建一个掩码,以指示特定行在其组中是否maximum

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM