我有一个像这样的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
+ tranform
与count
一起使用,以及附加的过滤步骤:
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