Python如何读取Excel多工作表并分别生成pandas DataFrame
多工作表Excel拆分读取为独立Pandas DataFrame解决方案
完全可以实现,Pandas原生支持多工作表Excel文件的读取操作,以下是两种最常用的实现方案:
前置依赖安装
首先确保安装了pandas和对应的Excel解析引擎,执行如下命令安装:pip install pandas openpyxl xlrd
openpyxl用于解析.xlsx格式文件xlrd用于解析旧版.xls格式文件
方案1:一次性读取所有工作表为字典结构
这是最简便的方案,读取后返回值为字典类型,键为工作表名称,值为对应工作表的DataFrame:
import pandas as pd # sheet_name设为None代表读取所有工作表 df_dict = pd.read_excel("你的Excel文件路径.xlsx", sheet_name=None, engine="openpyxl") # 按工作表名获取对应DataFrame df_sheet1 = df_dict["Sheet1"] df_sheet2 = df_dict["Sheet2"]
方案2:按需读取/循环处理工作表
如果需要对单个工作表做自定义读取配置(比如跳过表头、指定读取列等),可以先获取所有工作表名后逐个读取:
import pandas as pd # 打开Excel文件 xl_file = pd.ExcelFile("你的Excel文件路径.xlsx", engine="openpyxl") # 获取所有工作表名称列表 sheet_names = xl_file.sheet_names # 循环读取每个工作表,可自定义读取参数 df_dict = {} for sheet_name in sheet_names: # 可在parse中添加skiprows、usecols、dtype等自定义参数 df_dict[sheet_name] = xl_file.parse(sheet_name, skiprows=1, usecols="A:E")
注意事项
- 2.0及以上版本的xlrd库默认不再支持.xlsx格式解析,读取.xlsx文件时建议指定
engine="openpyxl" - 大文件读取优先使用
pd.ExcelFile方式,只需打开一次文件,比循环调用pd.read_excel效率更高 - 若需要将每个工作表的DataFrame设为独立全局变量,可以使用
globals()[f"df_{sheet_name}"] = xl_file.parse(sheet_name)实现,不过更推荐使用字典统一管理,便于后续遍历操作
内容的提问来源于stack exchange,提问作者Rishab S
相关产品推荐
相关产品推荐

