You need to enable JavaScript to run this app. Pandas多列DataFrame按行分组重塑实现问题求解
优惠活动
大模型
产品
解决方案
定价
更多

Pandas多列DataFrame按行分组重塑实现问题求解

Pandas DataFrame 重塑解决方案

示例数据适配代码

import pandas as pd

# 输入数据
df = pd.DataFrame({'Loc': ['Hyd', 'Hyd','Bang','Bang'],
               'Item': ['A', 'B', 'A', 'B'],
               'Month' : ['May','May','June','June'],
               'Sales': [100, 100, 200, 200],
                'Values': [1000, 1000, 2000, 2000]
               })

# 转换逻辑
# 1. 先把Sales、Values两个指标列转为行
df_melt = df.melt(
    id_vars=['Loc', 'Item', 'Month'],
    value_vars=['Sales', 'Values'],
    var_name='VAR'
)
# 2. 再把Month列的不同取值转为列
res = df_melt.pivot(
    index=['Loc', 'Item', 'VAR'],
    columns='Month',
    values='value'
).reset_index()
# 清除列名多余属性
res.columns.name = None

运行后得到的res和你给出的预期输出完全一致。

原有代码修改方案

你之前使用的是业务侧字段名,调整后即可正常运行:

res = dem.melt(
    id_vars=['Part','IBU','Date1'],
    var_name='VAR'
).pivot(
    index=['Part','IBU','VAR'],
    columns='Date1',
    values='value'
).reset_index()
res.columns.name = None

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 18:06:04