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

如何将Pandas宽表转换为指定长表结构?pivot_table遇参数限制

Pandas宽表转长表实现方案

当前数据框

WeekSalesRevenue
13456
24257
3206

目标结构

WeekParameterTotal
1Sales34
1Revenue56
2Sales42
2Revenue57
3Sales20
3Revenue6

你之前尝试的pd.pivot_table用法有误,因为pivot_table是用于将长表转换为宽表的工具,而你当前的需求是宽表转长表,应该使用pd.melt函数来实现。

正确代码实现

import pandas as pd

# 假设原始数据框为df1
df1 = pd.DataFrame({
    'Week': [1, 2, 3],
    'Sales': [34, 42, 20],
    'Revenue': [56, 57, 6]
})

# 使用melt转换结构
result = pd.melt(
    df1,
    id_vars=['Week'],  # 保持不变的标识列
    var_name='Parameter',  # 原列名转换后的类别列名
    value_name='Total'  # 原列数值转换后的数值列名
)

print(result)

代码说明

  • id_vars:指定不需要转换的列,这里Week列会保留原有值,与转换后的参数行一一对应
  • var_name:设置原列名(Sales、Revenue)转换后的列标题,对应目标结构的Parameter
  • value_name:设置原列中数值转换后的列标题,对应目标结构的Total

运行代码后即可得到目标格式的数据框。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:15:11