我有一个很大的Electron 表格文件(.xlsx),我正在使用python处理它.碰巧我需要那个大文件中两个选项卡(工作表)的数据.其中一个标签有大量数据,另一个只有几个方形单元格.
当我在any工作表上使用pd.read_excel()
时,我觉得整个文件都加载了(不仅仅是我感兴趣的工作表).因此,当我使用该方法两次(每张工作表一次)时,我实际上不得不忍受整个工作簿被读两次(即使我们只使用指定的工作表).
如何仅加载特定的pd.read_excel()
页?
我有一个很大的Electron 表格文件(.xlsx),我正在使用python处理它.碰巧我需要那个大文件中两个选项卡(工作表)的数据.其中一个标签有大量数据,另一个只有几个方形单元格.
当我在any工作表上使用pd.read_excel()
时,我觉得整个文件都加载了(不仅仅是我感兴趣的工作表).因此,当我使用该方法两次(每张工作表一次)时,我实际上不得不忍受整个工作簿被读两次(即使我们只使用指定的工作表).
如何仅加载特定的pd.read_excel()
页?
试试pd.ExcelFile
:
xls = pd.ExcelFile('path_to_file.xls')
df1 = pd.read_excel(xls, 'Sheet1')
df2 = pd.read_excel(xls, 'Sheet2')
正如@HaPsantran所指出的那样,整个Excel文件都是在ExcelFile()
调用期间读入的(似乎没有解决这个问题的办法).这只是使您不必在每次要访问新工作表时读取相同的文件.
请注意,pd.read_excel()
的sheet_name
参数可以是工作表的名称(如上所述)、指定工作表编号的整数(例如0、1等)、工作表名称或索引列表或None
.如果提供列表,它将返回一个字典,其中键是工作表名称/索引,值是数据框.默认情况下,只返回第一张表(即sheet_name=0
).
如果指定了None
,则返回all张,作为{sheet_name:dataframe}
字典.