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

如何使用Pandas Melt将DataFrame表头转换为行数据?

Pandas DataFrame 列转行:Acct列转换

需求

将DataFrame中所有以Acct开头的列转为Acct列的行值,同时保留Year列的分组关联,对应数值存入Amount列。

初始数据

import pandas as pd

df = pd.DataFrame({'Year': {0: 2022, 1: 2023, 2: 2024},
                   'Acct 1': {0: 100, 1: 300, 2: 500},
                   'Acct 2': {0: 200, 1: 400, 2: 600}})

解决方案

使用pandas.melt()函数即可实现,关键是正确指定参数:

  • id_vars:保留不变的关联列(这里是Year)
  • value_vars:需要转换为行的目标列(所有以Acct开头的列)
  • var_name:原列名转换后的新列名(Acct)
  • value_name:原列值转换后的新列名(Amount)

代码实现:

# 筛选所有以Acct开头的列
acct_columns = [col for col in df.columns if col.startswith('Acct')]

# 执行melt转换
transformed_df = df.melt(
    id_vars='Year',
    value_vars=acct_columns,
    var_name='Acct',
    value_name='Amount'
)

输出结果

print(transformed_df)
#    Year    Acct  Amount
# 0  2022  Acct 1     100
# 1  2023  Acct 1     300
# 2  2024  Acct 1     500
# 3  2022  Acct 2     200
# 4  2023  Acct 2     400
# 5  2024  Acct 2     600

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:25:11