使用Python与Pandas实现Excel横向表转纵向表的方法咨询
Python实现Excel复合表头宽表转长表方案
你要实现的是典型的复合表头宽表转长表操作,用pandas库即可快速完成,步骤如下:
- 先安装依赖库
执行命令pip install pandas openpyxl,其中openpyxl用于读写xlsx格式的Excel文件。 - 核心转换代码如下:
import pandas as pd # 读取原始Excel文件 # header=[0,1]表示取文件前两行作为多级列名,第一级是日期,第二级是指标名 # index_col=0表示将第一列Route作为行索引 df = pd.read_excel("你的原始文件路径.xlsx", header=[0, 1], index_col=0) # 堆叠多级列:将第一级列(日期)转换为行维度,得到长表结构 df_long = df.stack(level=0).reset_index() # 自定义列名,可根据实际需求调整 df_long.columns = ["Route", "日期", "DO", "DP", "Case", "Timing"] # 可选:将日期列转换为标准格式,适配你原始的01-Jan-21格式 df_long["日期"] = pd.to_datetime(df_long["日期"], format="%d-%b-%y") # 导出结果到新Excel df_long.to_excel("转换后的纵向表.xlsx", index=False)
- 常见场景调整
如果读取出来的列顺序不对,可在导出前手动调整columns的顺序;如果原始Excel有空值,可根据需求用df_long.dropna()或者df_long.fillna(0)做预处理。
内容的提问来源于stack exchange,提问作者user17611154
相关产品推荐
相关产品推荐

