01 语法
pandas.read_excel接口的语法如下:
- pd.read_excel(io, sheet_name=0, header=0,
- names=None, index_col=None,
- usecols=None, squeeze=False,
- dtype=None, engine=None,
- converters=None, true_values=None,
- false_values=None, skiprows=None,
- nrows=None, na_values=None,
- keep_default_na=True, verbose=False,
- parse_dates=False, date_parser=None,
- thousands=None, comment=None, skipfooter=0,
- convert_float=True, mangle_dupe_cols=True, **kwds)
02 文件内容
io为第一个参数,没有默认值,也不能为空,根据Python的语法,第一个参数传参时可以不写。可以传入本地文件名或者远程文件的URL:
- # 字符串、字节、Excel文件、xlrd.Book实例、路径对象或者类似文件的对象
- # 本地相对路径
- pd.read_excel('data/data.xlsx') # 注意目录层级
- pd.read_excel('data.xls') # 如果文件与代码文件在同一目录下
- # 本地绝对路径
- pd.read_excel('/user/gairuo/data/data.xlsx')
- # 使用URL
- pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')
与read_csv一样,需要注意,Mac和Windows中的路径写法不一样。
03 表格
sheet_name可以指定Excel文件读取哪个sheet,如果不指定,默认读取第一个。
- # 字符串、整型、列表、None,默认为0
- pd.read_excel('tmp.xlsx', sheet_name=1) # 第二个sheet
- pd.read_excel('tmp.xlsx', sheet_name='总结表') # 按sheet的名字
- # 读取第一个、第二个、名为Sheet5的sheet,返回一个df组成的字典
- dfs = pd.read_excel('tmp.xlsx', sheet_name=[0, 1, "Sheet5"])
- dfs = pd.read_excel('tmp.xlsx', sheet_name=None) # 所有sheet
- dfs['Sheet5'] # 读取时按sheet名
04 表头
数据的表头参数为header,如不指定,默认为第一行。
- # 整型、整型组成的列表,默认为 0
- pd.read_excel('tmp.xlsx', header=None) # 不设表头
- pd.read_excel('tmp.xlsx', header=2) # 第三行为表头
- pd.read_excel('tmp.xlsx', header=[0, 1]) # 两层表头,多层索引
05 列名
用names指定列名,也就是表头的名称,如不指定,默认为表头的名称。
- # 序列,默认为None
- pd.read_excel('tmp.xlsx', names=['姓名', '年龄', '成绩'])
- pd.read_excel('tmp.xlsx', names=c_list) # 传入列表变量
- # 没有表头,需要设置为None
- pd.read_excel('tmp.xlsx', header=None, names=None)
06 其他
其他参数与pandas.read_csv的同名参数功能一致,如果想使用仅pandas.read_csv有的参数,可以考虑将数据保存为CSV文件,因为CSV文件相对通用、读取数据快且处理方法比较丰富。
用Python读取CSV文件的操作详解可戳:史上最全!用Pandas读取CSV,看这篇就够了。
07 小结
本文介绍了pandas.read_excel相对于pandas.read_csv专有的参数功能。由于Excel文件在日常工作中较为常用,所以需要熟练掌握Excel的数据读取功能。另外对于一些量比较小的Excel数据文件,在做数据临时处理时,可以复制并使用pd.read_clipboard()来读取,非常方便。