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

如何用Python的Pandas读取行列转置的Excel文件?

解决转置Excel文件的读取还原问题

问题根源

直接调用df.transpose()达不到预期效果,核心原因是转置后的Excel结构发生了本质变化:原文件的表头变成了新文件的第一列,原数据行变成了新文件的列,而Pandas默认会把第一行识别为表头,导致数据和表头错位。

正确处理步骤

1. 读取转置文件时保留原始结构

读取时不要让Pandas自动识别表头,把所有内容都当作纯数据读取:

import pandas as pd

# header=None 表示不将第一行作为表头,完全保留原始结构
df_transposed = pd.read_excel("转置后的文件.xlsx", header=None)

2. 重构还原原文件结构

转置后的第一列是原文件的表头,从第二行开始的内容是原文件的数据行,按以下逻辑重构:

# 提取第一列的值作为新的表头
new_headers = df_transposed.iloc[:, 0].tolist()
# 提取从第二行、第二列开始的区域作为原始数据
df_original = df_transposed.iloc[1:, 1:]
# 为重构后的DataFrame设置表头
df_original.columns = new_headers

# (可选)如果原文件有自定义索引,把转置文件第一行的内容设为索引
df_original.index = df_transposed.iloc[0, 1:].tolist()

3. 特殊格式处理(如果需要)

如果转置后的文件存在合并单元格、空值等特殊格式,需额外处理:

  • 合并单元格:读取时添加merge_cells=True参数,之后用ffill()填充合并后的空值
  • 空值:根据业务需求用df.fillna(0)或df.dropna()处理

性能优化建议

因为转置后文件体积大幅缩小,读取时可以指定数据类型,避免Pandas自动推断带来的内存浪费和速度损耗:

# 比如统一指定字符串类型,避免日期、数值类型的误推断
df_transposed = pd.read_excel("转置后的文件.xlsx", header=None, dtype=str)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:28:11