Pandas如何读取指定工作表
2025年2月13日在 Pandas 中,可以通过 pd.read_excel()
方法读取 Excel 文件中的指定工作表(sheet
)。以下是详细的操作方法和示例。
语法
pd.read_excel(io, sheet_name=sheet_name, ...)
io
: Excel 文件的路径或文件对象。sheet_name
: 指定要读取的工作表。- 可以是:
- 工作表名称(字符串)。
- 工作表索引(整数,从
0
开始)。 - 列表(同时读取多个工作表)。
None
(读取所有工作表,返回一个字典,键是工作表名称,值是 DataFrame)。
- 可以是:
- 其他参数: 例如
usecols
(指定列)、nrows
(指定行数)等。
示例 1:读取单个工作表
根据工作表名称读取:
import pandas as pd
# 读取指定的工作表(通过名称)
df = pd.read_excel('example.xlsx', sheet_name='Sheet1')
print(df)
根据工作表索引读取:
# 读取指定的工作表(通过索引,第一个工作表是索引 0)
df = pd.read_excel('example.xlsx', sheet_name=0)
print(df)
示例 2:读取多个工作表
指定多个工作表(通过名称或索引):
# 读取多个工作表
dfs = pd.read_excel('example.xlsx', sheet_name=['Sheet1', 'Sheet2'])
# dfs 是一个字典,键是工作表名称,值是 DataFrame
print(dfs['Sheet1']) # 访问 Sheet1 的内容
print(dfs['Sheet2']) # 访问 Sheet2 的内容
读取所有工作表:
# 读取所有工作表
dfs = pd.read_excel('example.xlsx', sheet_name=None)
# dfs 是一个字典,键是工作表名称,值是 DataFrame
for sheet, data in dfs.items():
print(f"Sheet name: {sheet}")
print(data)
示例 3:读取指定的列或行
读取指定列:
# 读取 Sheet1,同时只加载指定列
df = pd.read_excel('example.xlsx', sheet_name='Sheet1', usecols=['A', 'B'])
print(df)
读取指定行:
# 读取 Sheet1,同时只加载前 10 行
df = pd.read_excel('example.xlsx', sheet_name='Sheet1', nrows=10)
print(df)
注意事项
- 依赖引擎:
- 默认情况下,Pandas 使用
openpyxl
引擎来处理.xlsx
文件。 - 在加载
.xls
文件时,需要安装xlrd
:pip install xlrd
- 默认情况下,Pandas 使用
- 工作表名称/索引错误:
- 如果指定的工作表名称不存在,会抛出错误。
- 如果不确定工作表名称,可以先列出所有工作表名称:
excel_file = pd.ExcelFile('example.xlsx') print(excel_file.sheet_names) # 输出所有工作表的名称
总结
- 读取单个工作表:
sheet_name='Sheet1'
或sheet_name=0
。 - 读取多个工作表:
sheet_name=['Sheet1', 'Sheet2']
。 - 读取所有工作表:
sheet_name=None
。
通过这些方法,可以轻松读取 Excel 文件中所需的工作表内容!