pd.read_excel()与pd.ExcelFile()函数

这两个函数很有意思,他们都可以对Microsoft Excel的表格进行数据读取操作,但是返回的对象不同,所以对其操作也有所不同。这篇没有对这两个函数进行深究,仅描述对其基本操作的一些不同点。

1
2
3
4
5
6
7
8
import pandas as pd
file = 'example.xls' #这里也可以是xlsx格式的文档
xls_a = pd.read_excel(file, sheet_name=None) #sheet_name=None读取所有sheets
xls_b = pd.ExcelFile(file) #xls_b与xls_a读取功能相同
type(xls_a)
Out [1]: collections.OrderedDict #返回字典类型
type(xls_b)
Out [2]: pandas.io.excel.ExcelFile #返回pandas excel对象

由于两种读取方式返回对象的差别,所以在对其操作上有不同。其中pd.read_excel()返回的字典类型,其key对应的是sheet names,value对应的是相应的dataframe。而pandas excel对象则有其独有的操作方式。

获取xls_a也就是使用pd.read_excel()读取的对象时,获取其sheet name和dataframe的操作按python字典的操作方式:

1
2
xls_a.keys() #获取sheet names
xls_a['sheet name'] #获取相应sheet下的dataframe,同时也可以使用index获取

而获取xls_b也就是使用pd.ExcelFile()读取的对象时,获取sheet name和dataframe都有其特定的操作方式:

1
2
3
xls_b.sheet_names #获取sheet names
xls_b.parse('sheet name') #使用sheet name获取sheet下的dataframe
xls_b.parse(0) #使用index获取相应sheet下的dataframe
0%