当前位置: 首页 > 知识库问答 >
问题:

用熊猫来做pd。读取同一工作簿的多个工作表的\u excel()

谢阳成
2023-03-14

我有一个很大的电子表格文件(.xlsx),我正在使用python处理它。碰巧我需要那个大文件中两个选项卡(工作表)中的数据。其中一个选项卡包含大量数据,而另一个选项卡只有几个方形单元格。

当我使用pd时。在任何工作表上读取_excel(),我觉得整个文件都已加载(不仅仅是我感兴趣的工作表)。因此,当我使用该方法两次(每张工作表一次)时,我实际上不得不忍受整个工作簿被读取两次(即使我们只使用指定的工作表)。

如何仅加载特定的工作表与pd.read_excel()

共有3个答案

顾喜
2023-03-14

也可以使用图纸的索引

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

将给出第一份工作表。对于第二个工作表:

sheet2 = xls.parse(1)
樊桐
2023-03-14

有几种选择:

直接将所有工作表读入有序字典。

import pandas as pd

# for pandas version >= 0.21.0
sheet_to_df_map = pd.read_excel(file_name, sheet_name=None)

# for pandas version < 0.21.0
sheet_to_df_map = pd.read_excel(file_name, sheetname=None)

将第一页直接读入dataframe

df = pd.read_excel('excel_file_path.xls')
# this will read the first sheet into df

读取excel文件并获取工作表列表。然后选择并加载工作表。

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)
    # you can also use sheet_index [0,1,2..] instead of sheet name.

感谢@iHighTower指出阅读所有工作表的方法,并感谢@toto_tico指出版本问题。

sheetname:string、int、字符串/int的混合列表或None,默认值0自版本0.21以来已弃用。0:使用工作表名称而不是源链接

方苗宣
2023-03-14

尝试pd。ExcelFile

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

正如@HaPsantran所指出的,整个Excel文件在调用ExcelFile()期间被读入(似乎没有办法解决这个问题)。这只会使您在每次访问新工作表时不必读取相同的文件。

请注意,sheet\u name参数指向pd。read_excel()可以是工作表的名称(如上所述)、指定工作表编号的整数(如0、1等)、工作表名称或索引列表,或。如果提供了列表,它将返回一个字典,其中键是图纸名称/索引,值是数据帧。默认情况下,只返回第一张图纸(即,sheet\u name=0)。

如果指定了None,则返回所有工作表,作为{sheet\u name:dataframe}字典。

 类似资料:
  • 问题内容: 我有一个较大的电子表格文件(.xlsx),正在使用python pandas处理。碰巧我需要那个大文件中两个标签中的数据。其中一个标签包含大量数据,另一个标签仅包含几个方形单元格。 当我在 任何 工作表上使用pd.read_excel()时,在我看来整个文件都已加载(不仅仅是我感兴趣的工作表)。因此,当我两次使用该方法(每张纸一次)时,我实际上不得不使整个工作簿被读两次(即使我们仅使用

  • 问题内容: 我有一个较大的电子表格文件(.xlsx),正在使用python pandas处理。碰巧我需要那个大文件中两个标签中的数据。选项卡中的一个包含大量数据,另一个仅包含几个正方形单元格。 当我在任何工作表上使用pd.read_excel()时,在我看来整个文件都已加载(不仅仅是我感兴趣的工作表)。因此,当我两次使用该方法(每张纸一次)时,我实际上不得不使整个工作簿被读两次(即使我们仅使用指定

  • 我有一个Excel工作簿,其中包含36个不同的工作表,我每两周收到一次,工作表在所有标签上都有共同的标题,并且每个标签上都有不同的唯一标题,但每条记录都有一个唯一的ID,可以有多个记录。 我要做的是从所有的工作表中提取唯一的id,然后将每个工作表中的数据提取到一个工作表中,其中包含所有的公共标题和唯一标题。 我正在考虑使用下面帖子中的代码将其导入Access。连接表并将其导出回Excel中的一个工

  • 所以我有 1500 个 Excel 工作簿,每个工作簿都有 10 张结构完全相同的工作表。我尝试将多个Excel工作簿合并到一个文件中,并使用以下代码成功: 谢谢,努尔贝克

  • 试图从当前工作簿“Create Report.xlsm”中复制工作表名称“Headings Explantions”,该工作簿打开到我要求打开的工作簿中,我得到了下标超出范围的错误