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

如何对Pandas DataFrame按名称去重并保留各名称对应最大值行

Pandas按Name分组取Value最大值的实现方案

下面提供两种生产环境常用的实现方式:

方案1:groupby 原生聚合写法

这是处理这类分组取最值需求的标准实现,逻辑严谨性能最优,代码非常简洁:

df_filtered = df.groupby('Name', as_index=False)['Value'].max()

参数as_index=False的作用是避免将分组键Name转为索引,保留为DataFrame的普通列,输出结构和你给出的预期结果完全一致。

方案2:排序后去重(更直观)

更符合逐行处理的直觉逻辑,不需要理解聚合逻辑也能快速实现:

# 先按Value降序排序,每个Name的最大值行排在最前,去重时保留第一条即可
df_filtered = df.sort_values('Value', ascending=False).drop_duplicates('Name', keep='first')
# 如果需要保留原始Name的出现顺序,可在末尾加上.sort_index()

如果你的DataFrame还有除了Name和Value之外的其他字段,方案2可以完整保留最大值对应的整行所有字段内容,适配性更强。

内容的提问来源于stack exchange,提问作者Johan Tuls

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:27:04