嗨,我有以下假设的df
df = pd.DataFrame({
'sp' : ['MM1', 'MM1', 'MM1', 'MM2', 'MM2', 'MM2', 'MM4', 'MM4','MM4'],
'mt' : ['S1', 'S1', 'S3', 'S3', 'S4', 'S4', 'S2', 'S2', 'S2'],
'val' : ['a', 'n', 'cb', 'mk', 'bg', 'dgb', 'rd', 'cb', 'uyi'],
'count' : [3,2,5,8,10,1,2,2,7]
})
top =df.groupby(['sp','mt']).agg({'count':'max'})
top
我在不删除val列的情况下按sp和mt进行分组,该怎么做?这个想法是找到count最大的val的值
谢谢
IIUC,您可以将其GroupBy.idxmax
用作索引.loc
idx = df.groupby(['sp', 'mt'])['count'].idxmax()
df.loc[idx.values, :]
sp mt val count
2 MM1 S3 cb 5
4 MM2 S4 bg 10
8 MM4 S2 uyi 7
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句