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

如何将Python Pandas DataFrame按多列组合转换为宽表结构?

Pandas DataFrame 结构转换实现方案

原始数据构造

先还原你提供的原始DataFrame:

import pandas as pd

df = pd.DataFrame({
    '产品': ['Apple', 'Apple', 'Banana', 'Banana'],
    '颜色': ['Yellow', 'Green', 'Yellow', 'Green'],
    '等级': ['A', 'B', 'B', 'A'],
    '价格': [1000, 500, 2000, 3000],
    '尺寸': [3, 4, 5, 6]
})

转换实现步骤

可以通过透视表+列名重构的方式实现目标结构,具体代码如下:

# 执行透视操作,按产品分组,将颜色、等级作为列维度,价格和尺寸作为值
pivoted_df = df.pivot(index='产品', columns=['颜色', '等级'], values=['价格', '尺寸'])

# 重构列名,将多层级列合并为目标格式:Price_颜色_等级、Size_颜色_等级
pivoted_df.columns = [f'{val_type}_{color}_{grade}' for val_type, color, grade in pivoted_df.columns]

# 重置索引将产品变回普通列,同时把缺失值填充为0并转为整数类型
final_df = pivoted_df.reset_index().fillna(0).astype(int)

转换结果

执行后final_df的结构与你期望的完全一致:

产品Price_Yellow_ASize_Yellow_APrice_Yellow_BSize_Yellow_BPrice_Green_ASize_Green_APrice_Green_BSize_Green_B
Apple1000300005004
Banana00200053000600

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 20:00:04