如何将表格多列转换为列表?如何用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
相关产品推荐
相关产品推荐

