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

Python pandas索引列存在重复条目时如何正确透视DataFrame

pandas多层列透视表参数设置解决方案

你遇到的报错是因为pd.pivot()要求index+columns的组合在原数据中唯一,你之前仅指定Color作为列维度时,同一个Size+Color分组下存在P1/P2/P3三个不同的Parameter取值,组合重复无法直接重塑。

方法1:使用pd.pivot()

如果原数据中Size+Parameter+Color的组合唯一,直接传递列表给columns参数指定双层列维度即可:

# 先确保Estimate列为数值类型,如果原数据是字符串需先转换
df['Estimate'] = pd.to_numeric(df['Estimate'], errors='coerce')
# 生成双层列透视表
result = df.pivot(
    index='Size',
    columns=['Parameter', 'Color'], # 列维度第一层为Parameter,第二层为Color,匹配目标结构
    values='Estimate'
)
# 调整行顺序匹配目标的Big>Medium>Small
result = result.reindex(['Big', 'Medium', 'Small'])

方法2:使用pd.pivot_table()

如果存在重复的Size+Parameter+Color组合,用pivot_table指定聚合规则更稳妥:

result = df.pivot_table(
    index='Size',
    columns=['Parameter', 'Color'],
    values='Estimate',
    aggfunc='sum' # 可根据需求替换为mean、first等聚合函数
).reindex(['Big', 'Medium', 'Small'])

最终输出的result结构完全匹配目标格式,第一层列索引为P1/P2/P3,第二层为对应颜色的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:48:00