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

pandas按客户分组取region最大值并保留整行数据的实现方法

解决方案

你之前的写法仅指定了聚合region列取最大值,因此返回结果只包含分组键和聚合后的region值,无法关联到原表的其他字段。可通过以下两种常用方法实现需求:

方法1:排序后去重(高效简洁)

先按客户、地区升序排序,同一客户下字符串取值更大的region会排在靠后位置,直接按客户字段去重保留最后一条记录即可:

# 按customer、region升序排序
df_sorted = df.sort_values(by=['customer', 'region'])
# 按customer去重,保留最后一条(即region最大的记录)
result = df_sorted.drop_duplicates(subset='customer', keep='last').reset_index(drop=True)

方法2:分组匹配最大值(逻辑直观)

先算出每个客户的最大region值,再通过双字段关联从原表匹配完整行:

# 计算每个客户的最大region,转为DataFrame格式
max_region_df = df.groupby('customer', sort=False)['region'].max().reset_index()
# 用customer和region双字段匹配原表,拿到对应完整行
result = df.merge(max_region_df, on=['customer', 'region']).reset_index(drop=True)

两种方法运行后得到的result即为你需要的期望输出。

内容的提问来源于stack exchange,提问作者Mauro Del Nook

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:30:02