如何在Pandas合并多份Excel文件时保留首文件表头并跳过其余表头?
更简便的Excel文件合并方案
直接针对第一个文件读取表头,其余文件跳过表头行读取,就能避免后续修改列名或删除重复行的操作,具体实现如下:
实现步骤
- 读取第一个文件,正常加载表头作为合并后DataFrame的列名
- 遍历剩余文件时,通过
skiprows=1参数跳过第一行(表头行),直接读取数据行 - 将所有数据行直接追加到初始DataFrame,无需额外修改
完整代码
import glob import pandas as pd import os path = r"C:\Users\..." my_files = glob.glob(os.path.join(path, "filename*.xlsx")) # 先处理第一个文件,读取表头作为列名 df_combined = pd.read_excel(my_files[0], index_col=None) # 遍历剩下的文件,跳过表头行读取数据 for filename in my_files[1:]: # skiprows=1 跳过第一行表头,header=None 不指定新列名,沿用初始DataFrame的列名 df = pd.read_excel(filename, index_col=None, skiprows=1, header=None) # 追加数据,保留原有索引(若不需要重置索引,去掉ignore_index=True即可) df_combined = pd.concat([df_combined, df], ignore_index=False)
补充说明
- 若担心文件顺序不符合预期,可先对文件列表排序,确保第一个文件是你需要的表头来源:
# 按文件名排序 my_files.sort() # 或按文件修改时间排序 my_files.sort(key=lambda x: os.path.getmtime(x)) - 这种方式从根源避免了重复表头行,列名完全继承自第一个文件,无需后续修改DataFrame结构
内容的提问来源于stack exchange,提问作者Chetan Patel
相关产品推荐
相关产品推荐

