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

如何将表格多列转换为列表?如何用Pandas实现Tab1转Tab2?

Pandas宽表转长表:用melt实现多列转列表

你的思路完全正确,df.melt()就是实现这种宽表转长表需求的合适工具。针对你给出的DataFrame,具体操作步骤如下:

1. 先明确原数据结构

运行你提供的代码得到初始DataFrame:

import pandas as pd
df = pd.DataFrame({'A': [3, 5], 'B': [4, 6], 'Z': [6, 8]}, index=[1, 100])

原表(Tab1)结构:

A  B  Z
1    3  4  6
100  5  6  8

2. 用melt转换为目标结构(Tab2)

因为原索引(1、100)是需要保留的关键信息,先把索引转为普通列,再执行melt:

# 重置索引,将原索引转为名为"Index"的列
df_with_idx = df.reset_index(names="Index")
# 执行melt转换
result = df_with_idx.melt(
    id_vars="Index",  # 指定要保留的列(不参与转换的列)
    var_name="Column",  # 存储原列名的新列名称
    value_name="Value"  # 存储原列值的新列名称
)

3. 转换后的结果

打印result会得到你需要的Tab2结构:

Index Column  Value
0      1      A      3
1    100      A      5
2      1      B      4
3    100      B      6
4      1      Z      6
5    100      Z      8

参数简单说明

  • id_vars:指定转换过程中保持不变的列,这里就是我们保留的原索引列
  • var_name:自定义存储原列名的新列标题
  • value_name:自定义存储原列值的新列标题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:52:18