You need to enable JavaScript to run this app. 如何在Pandas中按指定key分组后取其他列最小/最大值并合并为单行
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中按指定key分组后取其他列最小/最大值并合并为单行

解决方法

直接使用groupby.agg()为不同列指定独立的聚合规则即可实现需求,你的场景中C列同分组下数值完全一致,随便取首个值即可:

import pandas as pd

# 原数据构造
df = pd.DataFrame({'A': [1,2,1,2,3,3,3,4,5,6,6,4,5,5],
                   'B': [1.1,2.1,1.2,2.2,3.1,3.2,3.3,4.1,5.1,6.1,6.2,4.2,5.2,5.3],
                   'C':[10.1,20.1,10.1,20.1,30.1,30.1,30.1,40.1,50.1,60.1,60.1,40.1,50.1,50.1],
                   'D':['','',10.2,20.2,'','',30.2,'','','',60.2,40.2,'',50.2]
                   })

# 处理D列空字符串,转成数值类型,空值自动转为NaN,max计算时会自动忽略无效空值
df['D'] = pd.to_numeric(df['D'], errors='coerce')

# 按A分组,分别指定各列的聚合规则
result = df.groupby('A', as_index=False).agg({
    'B': 'min',
    'C': 'first',
    'D': 'max'
})

print(result)

运行后输出结果完全匹配你的预期:

A    B     C     D
0  1  1.1  10.1  10.2
1  2  2.1  20.1  20.2
2  3  3.1  30.1  30.2
3  4  4.1  40.1  40.2
4  5  5.1  50.1  50.2
5  6  6.1  60.1  60.2

如果实际场景中同分组的C值不固定,你可以根据自己的需求替换C对应的聚合规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 09:15:03