Pandas如何读取指定工作表

2025年2月13日 作者 unix2go

在 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)

注意事项

  1. 依赖引擎
    • 默认情况下,Pandas 使用 openpyxl 引擎来处理 .xlsx 文件。
    • 在加载 .xls 文件时,需要安装 xlrdpip install xlrd
  2. 工作表名称/索引错误
    • 如果指定的工作表名称不存在,会抛出错误。
    • 如果不确定工作表名称,可以先列出所有工作表名称: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 文件中所需的工作表内容!