楼主: yunnandlg
1787 0

pandas获取groupby分组里最大值所在的行方法 [推广有奖]

版主

但问耕耘,莫问收获

已卖:3032份资源

院士

5%

还不是VIP/贵宾

-

威望
0
论坛币
279167 个
通用积分
649.6470
学术水平
1667 点
热心指数
1686 点
信用等级
1650 点
经验
191872 点
帖子
1938
精华
0
在线时间
2778 小时
注册时间
2010-8-28
最后登录
2025-12-8

楼主
yunnandlg 在职认证  学生认证  发表于 2022-1-25 17:36:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币














import pandas as pd

df = pd.DataFrame({'Sp':['a','b','c','d','e','f'], 'Mt':['s1', 's1', 's2','s2','s2','s3'],
'Value':[1,2,3,4,5,6],
'Count':[3,2,5,10,10,6]
})


方法1:在分组中过滤出Count最大的行

df.groupby('Mt').apply(lambda t: t[t.Count==t.Count.max()])


方法2:用transform获取原dataframe的index,然后过滤出需要的行
df.groupby(['Mt'])['Count'].agg(max)
df.groupby(['Mt'])['Count'].transform(max)


方法3:idmax(旧版本pandas是argmax)

df.groupby('Mt')['Count'].idxmax()
















二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:pandas panda Group Das 最大值

Cause morning rolls around and it's another day of sun.
清晨不久就会来到,又是阳光明媚的一天。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 15:02