我有一个像这样的DataFrame:

df = pd.DataFrame({'id':['pt1','px1','t95','sx1','dc4', 'px5'],
'feature':['f7','f7', 'f7','f8','f8', 's1'],
'score':['2','3.3','4','8','4.9', '6']})


我想要:
 1-计算“功能”列中每个组的组大小
(结果为f7:3; f8:2; s1:1)
 2-找到最大群组大小(即f7:3)
 3-保留属于该组的行的最大大小(f7),并删除其余行

最终的pd.DataFrame将是:

id feature score
pt1   f7      2
px1   f7     3.3
t95   f7      4


谢谢,

最佳答案

GroupBy + tranformcount一起使用,以及附加的过滤步骤:

v = df.groupby('feature').feature.transform('count')
df[v.eq(v.max())]

    id feature score
0  pt1      f7     2
1  px1      f7   3.3
2  t95      f7     4

08-24 12:58