如何高效将Excel多工作表数据合并为单个Pandas DataFrame?
高效合并多工作表至单一DataFrame的实现方案
可以利用pandas的ExcelFile结合循环简化操作,替代手动逐个读取的冗余方式,具体实现如下:
核心思路
- 一次性读取Excel文件并获取所有工作表名称
- 循环遍历每个工作表,读取数据后添加对应年份列
- 最后合并所有工作表数据为单个DataFrame
代码实现
import pandas as pd # 读取目标Excel文件 excel_file = pd.ExcelFile("你的文件路径.xlsx") # 初始化空列表存储各工作表数据 df_collection = [] # 遍历所有工作表 for sheet_name in excel_file.sheet_names: # 读取当前工作表数据 sheet_df = excel_file.parse(sheet_name) # 添加年份归属列,直接复用工作表名称作为年份值 sheet_df["年份"] = sheet_name # 将处理后的数据存入列表 df_collection.append(sheet_df) # 合并所有DataFrame并重置索引 final_df = pd.concat(df_collection, ignore_index=True) # 可选:查看合并后的结果 print(final_df.head())
额外说明
- 该方案自动适配所有工作表,后续新增年份工作表无需修改代码
ignore_index=True用于避免合并后出现重复索引的问题- 若工作表名称与年份格式不一致,可在循环内通过字符串处理提取年份(如
sheet_name[-4:]截取四位数字年份)
内容的提问来源于stack exchange,提问作者AJCaffarini
相关产品推荐
相关产品推荐

