使用Pandas为同一工作簿的多个工作表指定pd.read_excel()

我有一个大的电子表格文件(.xlsx),我正在使用Pythonpandas处理。 碰巧,我需要从该大文件中的两个选项卡中获取数据。 其中一个标签有大量的数据,另一个只有几个方格。

当我在任何工作表上使用pd.read_excel()时,它看起来像整个文件被加载(不只是我感兴趣的工作表)。 所以当我使用这个方法两次(每个表单一次)时,我实际上不得不让整个工作簿被读取两次(即使我们只使用指定的表格)。

我是用错了还是仅仅用这种方式来限制?

谢谢!

试试这个 :

xls = pd.ExcelFile('path_to_file.xls') df1 = xls.parse('Sheet1') df2 = xls.parse('Sheet2') 

没有仔细观察,看第一行做了多less工作,后来做了多less工作,但至less是一个可以开始玩的地方。

您也可以使用表格的索引:

 xls = pd.ExcelFile('path_to_file.xls') sheet1 = xls.parse(0) 

会给第一个工作表。 为第二个工作表:

 sheet2 = xls.parse(1) 

您也可以将表格名称指定为参数:

 data_file = pd.read_excel('path_to_file.xls', sheetname="sheet_name") 

将仅上传工作表“sheet_name”

有3个选项:

  1. 将第一张表格直接读入数据框
  2. 阅读excel文件并获取工作表清单。 然后select并加载表单。
  3. 阅读所有表格并将其存储在字典中。

代码示例:

 import pandas as pd df = pd.read_excel('excel_file_path.xls') # this will read the first sheet into df xls = pd.ExcelFile('excel_file_path.xls') # Now you can list all sheets in the file xls.sheet_names # ['house', 'house_extra', ...] # to read just one sheet to dataframe: df = pd.read_excel(file_name, sheetname="house") # to read all sheets to a map sheet_to_df_map = {} for sheet_name in xls.sheet_names: sheet_to_df_map[sheet_name] = xls.parse(sheet_name) 

更新:

 # @ihightower pointed out in the comments that all sheets can be # directly read into an ordered dictionary in 1 step sheet_to_df_map = pd.read_excel(file_name, sheetname=None)