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

如何在Pandas中按指定列转换表格(宽表转长表)

宽表转长表解决方案

这是典型的宽格式DataFrame转长格式操作,用pandas内置的melt()函数就能快速实现,步骤如下:

1. 修正原始DataFrame创建代码

你提供的原始代码存在语法错误,正确创建方式需用字典传入pd.DataFrame:

import pandas as pd

# 正确创建宽格式DataFrame
df = pd.DataFrame({
    "Country": ["India", "China", "USA", "UK"],
    2001: [11, 12, 13, 14],
    2002: [21, 22, 23, 24],
    2003: [31, 32, 33, 34],
    2004: [41, 42, 43, 44]
})

2. 使用melt()转换为长格式

melt()核心参数作用:

  • id_vars:指定保留为标识符的列(此处为Country)
  • var_name:设置原列名转换后的新列名(此处为Year)
  • value_name:设置原列值转换后的新列名(此处为Value)

执行转换的代码:

# 转换为长格式DataFrame
df_long = df.melt(
    id_vars="Country",
    var_name="Year",
    value_name="Value"
)

# 可选:将Year列转为整数类型(原列名为整数,melt后默认是object类型)
df_long["Year"] = df_long["Year"].astype(int)

转换结果

最终df_long的结构与你需求完全匹配,示例片段如下:

CountryYearValue
India200111
China200112
USA200113
UK200114
India200221
.........
UK200444

内容的提问来源于stack exchange,提问作者Likhith Chakravarthi K C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:03:34