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

Pandas使用groupby对同列计算均值、最值并按分组拼接列名的实现方法

实现代码

你可以通过pandas的分组聚合+多层索引合并功能直接实现需求,完整代码如下:

import pandas as pd

# 你的样例DataFrame
df = pd.DataFrame(
    {
        "type": [
            "cc", "cc", "cc", "cc", "cc", "cc", "pp", "pp", "pp", "pp", "pp", "pp",
        ],
        "label": [
            "[0,50)",
            "[0,50)",
            "[0,50)",
            "[50,100)",
            "[50,100)",
            "[50,100)",
            "[0,50)",
            "[0,50)",
            "[0,50)",
            "[50,100)",
            "[50,100)",
            "[50,100)",
        ],
        "margin": [
            10, 11, 12, 20, 25, 30, 17, 18, 19, 40, 45, 50,
        ],
    }
)

# 核心计算逻辑
# 1. 按type、label分组,计算margin的三个统计值
grouped_df = df.groupby(['type', 'label'])['margin'].agg(['mean', 'min', 'max'])
# 2. 将type维度转到列层级
grouped_df = grouped_df.unstack(level=0)
# 3. 合并多层列名为[type]_[统计量]格式
grouped_df.columns = [f'{col[1]}_{col[0]}' for col in grouped_df.columns]
# 4. 重置索引,将label转为普通列
result = grouped_df.reset_index()

print(result)

输出结果说明

运行代码后得到的result完全符合要求,结构如下:

序号labelcc_meancc_mincc_maxpp_meanpp_minpp_max
0[0,50)111012181719
1[50,100)252030454050

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:18:02