You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python pandas获取每个分组中值最大的行

Pandas 分组取最大值对应行实现方案

你按ex字段完成分组的DataFrame预览如下:
按ex字段分组后的DataFrame结果预览

以下是经过验证的可用方法,根据你的需求选择即可:

  • 场景1:每个分组只保留第一条匹配最大值的行(性能最优,大数据量优先选)
    用idxmax()直接定位每个分组目标列最大值对应的原表索引,再通过loc取整行:

    # 把「target_col」替换成你要对比最大值的实际列名,比如你要取count列最大值就填'count'
    result = df.loc[df.groupby('ex')['target_col'].idxmax()]
    

    注意:不要直接用df.groupby('ex').max(),该方法会对每列单独取最大值拼接,返回的行不一定是原表中真实存在的记录,会出现列值错配。

  • 场景2:每个分组保留所有值等于最大值的行(同组最大值有多条时全部返回)
    用transform('max')给同组所有行打上该组最大值的标记,再做等值过滤:

    # 同样替换「target_col」为你的实际对比列名
    result = df[df.groupby('ex')['target_col'].transform('max') == df['target_col']]
    
  • 如果你已经提前生成了GroupBy对象(比如存为g = df.groupby('ex')),直接在g上调用上述方法即可,不需要重复执行分组逻辑。

内容的提问来源于stack exchange,提问作者Quang Minh Vu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 12:15:39