【问题标题】:Using pandas, how to only read one sheet from Excel workbook without loading any of the other sheets?使用熊猫,如何只从 Excel 工作簿中读取一张工作表而不加载任何其他工作表?
【发布时间】:2020-03-06 05:17:25
【问题描述】:

这与类似的问题略有不同。如果有人熟悉的话,我正在使用 Excel 的 FactSet 插件。我有一个带有多个选项卡的工作簿,这些选项卡使用 FactSet 插件来提取数据。这个没问题。

问题是 FactSet 为每个 Excel 工作簿生成一个隐藏的缓存工作表,当读取该工作簿时会导致 python 加载 Excel 文件的任何工作表以返回一个空的 DataFrame。

我尝试了两种方法从工作表中获取数据,但两种方法都加载了整个工作簿,导致 FactSet 缓存文件被读入。

import pandas as pd

fname = 'facset_excel_file.xlsm'

# method 1
wb = pd.ExcelFile(fname)
symbols = pd.read_excel(wb, sheet_name='Symbols')  # returns empty DataFrame

# method 2
pd.read_excel(fname, sheet_name='Symbols')  # returns empty DataFrame

所以我的问题是如何在不加载整个工作簿的情况下阅读单个工作表?或者是否可以在加载工作簿时按名称排除工作表?

【问题讨论】:

    标签: python excel pandas


    【解决方案1】:

    您可以使用类似的东西,可以使用文件名作为字符串或打开的文件对象来读取文件:

    df = pd.read_excel(open('facset_excel_file.xlsm', 'rb'), sheet_name='123')
    

    试试看。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多