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

Pandas DataFrame按brand和type分组求平均价格并输出透视表的方法

你可以用以下两种方法实现需求:

方法1:使用pivot_table(更直观,推荐)

pivot_table原生支持按指定行列分组聚合,一行代码就能输出目标格式:

import pandas as pd
# 假设你的原始DataFrame名为df
result = pd.pivot_table(
    df,
    index='brand',
    columns='type',
    values='price',
    aggfunc='mean',
    fill_value=0 # 可选参数,无对应分组的位置默认填0,不配置则默认显示NaN
)
# 如果需要行索引统一加brand_前缀,添加以下代码即可
result.index = 'brand_' + result.index

示例数据运行后的输出结果如下:

type        X     Y      Z
brand
brand_A  39.0  20.0    0.0
brand_B  12.4   0.0   94.15
brand_C  32.0   0.0    0.0

方法2:groupby + unstack(适配你已有的实现)

你之前用groupby得到的是二级行索引的聚合结果,只需要加一步unstack操作,就能将type转为列索引,得到目标格式:

result = df.groupby(['brand', 'type'])['price'].mean().unstack(fill_value=0)
result.index = 'brand_' + result.index

两种方法得到的结果完全一致,可以根据使用习惯选择。

内容的提问来源于stack exchange,提问作者D. Brito

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:45:03