返回

Pandas pd.read_excel()如何高效加载同一工作簿中的多个工作表?

python

如何使用 Pandas 的 pd.read_excel() 读取同一工作簿中的多个工作表

问题:加载特定工作表

当使用 pd.read_excel() 读取任何工作表时,似乎整个文件都会被加载(而不仅仅是你感兴趣的工作表)。如果你需要从同一工作簿中的两个选项卡(工作表)中获取数据,这可能会导致不必要的延迟和内存消耗。

解决方案:指定工作表

1. 使用 sheet_name 参数

sheet_name 参数允许你指定要加载的工作表名称。例如,要仅加载名为 "Sheet1" 的工作表,可以使用:

df = pd.read_excel('workbook.xlsx', sheet_name='Sheet1')

2. 使用 index 参数

index 参数允许你指定要加载的工作表索引。例如,要加载工作簿中的第一个工作表,可以使用:

df = pd.read_excel('workbook.xlsx', index=0)

3. 使用 list 参数

list 参数允许你指定一个工作表名称或索引列表。例如,要加载名为 "Sheet1" 和 "Sheet3" 的工作表,可以使用:

df = pd.read_excel('workbook.xlsx', sheet_name=['Sheet1', 'Sheet3'])

注意事项

  • 如果工作表名称中包含空格,请使用方括号将其括起来。
  • 如果工作簿包含多个工作表,请使用 pd.ExcelFile 类来访问它们。

示例代码

# 加载名为 "Sheet1" 的工作表
df1 = pd.read_excel('workbook.xlsx', sheet_name='Sheet1')

# 加载工作簿中的第一个工作表
df2 = pd.read_excel('workbook.xlsx', index=0)

结论

通过使用 sheet_nameindexlist 参数,你可以仅加载特定工作表,从而提高读取大型电子表格文件的效率和性能。

常见问题解答

  • 问题:如何获取工作簿中所有工作表的列表?

    答案:使用 pd.ExcelFile 类。

workbook = pd.ExcelFile('workbook.xlsx')
sheets = workbook.sheet_names
  • 问题:如果工作表名称中包含空格怎么办?

    答案:使用方括号将其括起来。

df = pd.read_excel('workbook.xlsx', sheet_name='[Sheet Name]')
  • 问题:如何加载工作簿中的所有工作表?

    答案:使用 pd.read_excel() 而不需要指定 sheet_name 参数。

df = pd.read_excel('workbook.xlsx')
  • 问题:如何加载工作簿中的特定工作表范围?

    答案:使用 sheet_name 参数并指定工作表范围。

df = pd.read_excel('workbook.xlsx', sheet_name='Sheet1:Sheet3')
  • 问题:如何加载工作簿中特定工作表的特定行或列?

    答案:使用 usecolsskiprows 参数。

df = pd.read_excel('workbook.xlsx', sheet_name='Sheet1', usecols='A:C', skiprows=10)