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

获取DataFrame中按分类变量D分组后各列的最大最小值

你原有代码的问题有两点:

  1. 你传入agg的dfObj.min(axis=0)是对全表计算最小值,不是分组后的组内统计值
  2. 仅配置了X列的聚合规则,没有覆盖Y、Z列,也没有处理聚合后生成的多级列名

你可以直接用pandas的命名聚合特性实现需求,一步得到符合你要求的列名格式:

min_max_df = dfObj.groupby('D', as_index=False).agg(
    Xmin=('X', 'min'),
    Xmax=('X', 'max'),
    Ymin=('Y', 'min'),
    Ymax=('Y', 'max'),
    Zmin=('Z', 'min'),
    Zmax=('Z', 'max')
)

如果需要统计的数值列数量较多,也可以用批量生成聚合规则的写法:

# 需要统计的数值列列表
num_cols = ['X', 'Y', 'Z']
# 生成聚合规则
agg_config = {col: ['min', 'max'] for col in num_cols}
# 分组聚合
temp = dfObj.groupby('D', as_index=False).agg(agg_config)
# 拼接多级列名得到最终列名
temp.columns = [col[0] + col[1].capitalize() if col[1] else col[0] for col in temp.columns]
min_max_df = temp

两种写法输出的结果都和你期望的格式完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:45:01