如何使用pandas实现测量数据的格式重构?
宽表转三列长表的Pandas实现方案
核心逻辑是将交叉结构的宽表直接转换为长表,无需手动拆分列表做值匹配,具体实现步骤如下:
- 读取原始数据时,将第一列(即y值列)设置为索引
import pandas as pd # 读取csv格式原始数据示例,如果是Excel格式改用pd.read_excel即可 df = pd.read_csv("你的原始数据文件路径", index_col=0)
- 调用
stack()方法完成结构转换,再重置索引并重命名列即可
# 转换为长表结构 result_df = df.stack().reset_index() # 重命名列名符合需求 result_df.columns = ["y", "x", "t"] # 调整列顺序为x、y、t,和需要的格式对齐 result_df = result_df[["x", "y", "t"]]
原理解释
stack()方法会自动把原表的列名(对应原始数据首行的x取值)转为第二级行索引,原表的行索引(对应原始数据首列的y取值)保留为第一级索引,行列交叉的t值会自动和对应的x、y匹配reset_index()会把两级行索引都转为普通数据列,最终输出的result_df就是要求的结构化格式
内容的提问来源于stack exchange,提问作者user14875201
相关产品推荐
相关产品推荐

