如何将多个Excel工作表合并为单个Pandas DataFrame,表名作首列行号为次列
实现方案
依赖安装
如果尚未安装所需库,执行以下命令:pip install pandas openpyxl
完整代码
import pandas as pd # 替换为你的Excel文件实际路径 excel_path = "your_file.xlsx" # 读取整个Excel工作簿 xls = pd.ExcelFile(excel_path, engine="openpyxl") df_list = [] # 遍历所有工作表 for sheet_name in xls.sheet_names: # 读取当前工作表数据,默认第一行为表头;如果工作表无表头,可添加参数 header=None df = pd.read_excel(xls, sheet_name=sheet_name) # 插入工作表名称为第一列 df.insert(0, "Sheet", sheet_name) # 插入工作表内行号为第二列,从1开始计数 df.insert(1, "Row", range(1, len(df)+1)) df_list.append(df) # 合并所有工作表数据得到最终结果 final_df = pd.concat(df_list, ignore_index=True) # 可选操作:打印前几行验证结果,或导出为新文件 print(final_df.head()) # final_df.to_excel("merged_result.xlsx", index=False)
补充说明
- 行号默认统计的是每个工作表内的数据行序号,自动排除表头行,完全匹配你给出的预期格式
- 不需要提前知晓所有工作表名称,代码会自动遍历工作簿内的全部工作表
- 如果工作表无表头,读取时添加
header=None参数即可,pandas会自动为列命名为0、1、2...,可后续自行修改列名
内容的提问来源于stack exchange,提问作者Thirasak Phromphimon
相关产品推荐
相关产品推荐

