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

如何使用pd.ExcelFile引用Excel文件中的所有工作表?

嘿,别担心!刚上手Pandas和Python的时候,遇到这种重复手动操作的问题太正常了~ 你现在的写法需要一个个手动定义df1、df2,不仅麻烦,要是工作表数量变了还得改代码,确实不够灵活。

我来给你两个简单的方法,轻松搞定读取所有工作表的需求:

方法1:用sheet_name=None直接读取所有工作表(最推荐)

Pandas的read_excel函数有个sheet_name参数,当你把它设为None时,会自动读取文件里的所有工作表,并返回一个字典——字典的键是工作表名称,值就是对应工作表的DataFrame。

代码示例:

import pandas as pd

# 读取整个Excel文件,所有工作表存入字典
excel_data = pd.read_excel('你的文件路径.xlsx', sheet_name=None)

# 先看看所有工作表的名字,确认是不是都读进来了
print("所有工作表名称:", list(excel_data.keys()))

# 访问单个工作表,比如叫"销售数据"的表
sales_df = excel_data['销售数据']

# 要是想遍历所有工作表做统一处理,比如打印每个表的前5行
for sheet_name, df in excel_data.items():
    print(f"\n=== 工作表:{sheet_name} ===")
    print(df.head())  # 显示前5行数据

方法2:用pd.ExcelFile结合循环解析

如果你已经创建了pd.ExcelFile对象(就像你代码里写的那样),也可以通过循环逐个解析每个工作表,把它们存入字典:

import pandas as pd

xlsx = pd.ExcelFile('你的文件路径.xlsx')
sheet_names = xlsx.sheet_names  # 获取所有工作表名称

# 创建空字典存储所有DataFrame
all_dfs = {}
for name in sheet_names:
    all_dfs[name] = xlsx.parse(name)

# 同样可以访问单个工作表
user_df = all_dfs['用户信息']

额外小技巧:合并所有工作表

要是你想把所有工作表的数据合并成一个大的DataFrame,可以用pd.concat,还能保留每个数据来自哪个工作表:

combined_df = pd.concat(
    excel_data.values(),
    keys=excel_data.keys(),
    names=['来源工作表', '原行索引']
).reset_index(level=1, drop=True)

这样就不用再手动一个个定义df1到dfN啦,不管工作表数量怎么变,代码都能自动适配~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 03:07:52