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

如何用Pandas将Excel多工作表转为独立DataFrame?解决返回字典问题

解决pandas读取Excel返回字典而非DataFrame的问题

问题原因

当pd.read_excel()的sheet_name参数传入列表时,无论列表里有几个元素,pandas都会返回一个字典:键是工作表名称,值是对应工作表的DataFrame。你传入了['Product Capacity']这个单元素列表,所以得到的是字典而非单个DataFrame。

解决方案

1. 读取单个工作表,直接得到DataFrame

把sheet_name的值改为字符串形式,而非列表:

import pandas as pd
df = pd.read_excel("path", sheet_name='Product Capacity')

2. 读取所有5个工作表,生成独立的DataFrame

如果需要把工作簿里的5个工作表都转为独立的DataFrame,可以先读取所有工作表得到字典,再逐个提取:

import pandas as pd
# sheet_name=None会自动识别并读取所有工作表
all_sheets = pd.read_excel("path", sheet_name=None)

# 假设你的5个工作表名为'Product Capacity', 'Sales Data', 'Inventory', 'Customer Info', 'Logs'
# 逐个提取为独立变量
df_product_capacity = all_sheets['Product Capacity']
df_sales_data = all_sheets['Sales Data']
df_inventory = all_sheets['Inventory']
df_customer_info = all_sheets['Customer Info']
df_logs = all_sheets['Logs']

如果工作表名称已知,也可以用循环批量生成变量:

import pandas as pd
sheet_names = ['Product Capacity', 'Sales Data', 'Inventory', 'Customer Info', 'Logs']
all_sheets = pd.read_excel("path", sheet_name=sheet_names)

# 循环生成以工作表名命名的变量(空格替换为下划线)
for sheet_name in sheet_names:
    var_name = f'df_{sheet_name.replace(" ", "_")}'
    globals()[var_name] = all_sheets[sheet_name]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:36:26