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

当我在任何工作表上使用pd.read_excel()时,它看起来就像加载了整个文件(而不仅仅是我感兴趣的工作表)。因此,当我使用该方法两次(每个工作表一次)时,我实际上不得不忍受整个工作簿被读取两次(即使我们只使用指定的工作表)。

我如何只加载特定的表与pd.read_excel()?


当前回答

如果你已经将excel文件保存在与python程序相同的文件夹中(相对路径),那么你只需要提到表号和文件名。

例子:

 data = pd.read_excel("wt_vs_ht.xlsx", "Sheet2")
 print(data)
 x = data.Height
 y = data.Weight
 plt.plot(x,y,'x')
 plt.show()

其他回答

如果你已经将excel文件保存在与python程序相同的文件夹中(相对路径),那么你只需要提到表号和文件名。

例子:

 data = pd.read_excel("wt_vs_ht.xlsx", "Sheet2")
 print(data)
 x = data.Height
 y = data.Weight
 plt.plot(x,y,'x')
 plt.show()
pd.read_excel('filename.xlsx') 

默认情况下,读取工作簿的第一张。

pd.read_excel('filename.xlsx', sheet_name = 'sheetname') 

阅读练习册上的具体表格

pd.read_excel('filename.xlsx', sheet_name = None) 

将所有工作表从excel读取到pandas数据帧作为OrderedDict的类型,意味着嵌套的数据帧,所有工作表作为数据帧收集在数据帧内,它的类型是OrderedDict。

你也可以使用表的索引:

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

将给出第一个工作表。第二张工作表:

sheet2 = xls.parse(1)

你可以用下面几行来阅读所有的表格

import pandas as pd
file_instance = pd.ExcelFile('your_file.xlsx')

main_df = pd.concat([pd.read_excel('your_file.xlsx', sheet_name=name) for name in file_instance.sheet_names] , axis=0)

如果你有兴趣阅读所有的表格并将它们合并在一起。最好最快的方法

sheet_to_df_map = pd.read_excel('path_to_file.xls', sheet_name=None)
mdf = pd.concat(sheet_to_df_map, axis=0, ignore_index=True)

这将把所有的表转换成一个单独的数据帧m_df