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

如何用Python Pandas将Excel宽表转换为结构化长表格式

Pandas实现宽表转长表(Unpivot)

你的需求本质是将宽格式数据转换为长格式数据,在Pandas里可以直接用melt()函数实现,不需要复杂的crossjoin操作。

代码实现

首先构造你的原始数据:

import pandas as pd

# 原始数据
data = {
    'CostCenter': ['A21', 'B21', 'C21'],
    'Monday': ['$1000', '$1000', '$1000'],
    'Tuesday': ['$2000', '$2000', '$2000'],
    'Wednesday': ['$3000', '$3000', '$3000']
}
df = pd.DataFrame(data)

然后使用melt()完成格式转换:

# 转换为长格式
long_df = df.melt(
    id_vars='CostCenter',  # 保持不变的基准列
    var_name='DAY',        # 原日期列名转为新列的名称
    value_name='VALUE'     # 原列数值对应的新列名称
)

转换结果

输出的long_df完全符合你的期望格式:

CostCenter        DAY  VALUE
0        A21      Monday  $1000
1        B21      Monday  $1000
2        C21      Monday  $1000
3        A21     Tuesday  $2000
4        B21     Tuesday  $2000
5        C21     Tuesday  $2000
6        A21  Wednesday  $3000
7        B21  Wednesday  $3000
8        C21  Wednesday  $3000

参数说明

  • id_vars:指定不需要被拆分转换的列,这里的CostCenter会和每一条转换后的行数据绑定。
  • var_name:定义将原宽表的列名(日期)存入的新列名称。
  • value_name:定义将原宽表的数值存入的新列名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 08:50:27