详解pandas库pd.read_excel操作读取excel文件参数整理与实例


Posted in Python onFebruary 17, 2019

除了使用xlrd库或者xlwt库进行对excel表格的操作读与写,而且pandas库同样支持excel的操作;且pandas操作更加简介方便。

首先是pd.read_excel的参数:函数为:

pd.read_excel(io, sheetname=0,header=0,skiprows=None,index_col=None,names=None,
    arse_cols=None,date_parser=None,na_values=None,thousands=None, 
    convert_float=True,has_index_names=None,converters=None,dtype=None,
    true_values=None,false_values=None,engine=None,squeeze=False,**kwds)

表格数据:

详解pandas库pd.read_excel操作读取excel文件参数整理与实例详解pandas库pd.read_excel操作读取excel文件参数整理与实例

常用参数解析:

io :excel 路径;

In [10]: import pandas as pd
#定义路径IO
In [11]: IO = 'example.xls'
#读取excel文件
In [12]: sheet = pd.read_excel(io=IO)
#此处由于sheetname默认是0,所以返回第一个表
In [13]: sheet
Out[13]:
 姓名 年龄  出生日 爱好 关系
0 小王 23 1991-10-02 足球 朋友
1 小丽 23 1992-11-02 篮球 NaN
2 小黑 25 1991-10-18 游泳 同学
3 小白 21 1989-09-09 游戏 NaN
4 小红 25 1990-08-07 看剧 NaN
5 小米 24 1991-12-12 足球 NaN
6 大锤 26 1988-09-09 看剧 个人
#上述列表返回的结果和原表格存在合并单元格的差异

sheetname:默认是sheetname为0,返回多表使用sheetname=[0,1],若sheetname=None是返回全表 。注意:int/string返回的是dataframe,而none和list返回的是dict of dataframe。

In [7]: sheet = pd.read_excel('example.xls',sheetname= [0,1])
#参数为None时,返回全部的表格,是一个表格的字典;
#当参数为list = [0,1,2,3]此类时,返回的多表格同样是字典
In [8]: sheet
Out[8]:
{0: 姓名 年龄  出生日 爱好 关系
 0 小王 23 1991-10-02 足球 朋友
 1 小丽 23 1992-11-02 篮球 NaN
 2 小黑 25 1991-10-18 游泳 同学
 3 小白 21 1989-09-09 游戏 NaN
 4 小红 25 1990-08-07 看剧 NaN
 5 小米 24 1991-12-12 足球 NaN
 6 大锤 26 1988-09-09 看剧 个人, 1: 1 3 5 学生
 0 2 3 4 老师
 1 4 1 9 教授}
#value是一个多位数组
In [15]: sheet[0].values
Out[15]:
array([['小王', 23, Timestamp('1991-10-02 00:00:00'), '足球', '朋友'],
  ['小丽', 23, Timestamp('1992-11-02 00:00:00'), '篮球', nan],
  ['小黑', 25, Timestamp('1991-10-18 00:00:00'), '游泳', '同学'],
  ['小白', 21, Timestamp('1989-09-09 00:00:00'), '游戏', nan],
  ['小红', 25, Timestamp('1990-08-07 00:00:00'), '看剧', nan],
  ['小米', 24, Timestamp('1991-12-12 00:00:00'), '足球', nan],
  ['大锤', 26, Timestamp('1988-09-09 00:00:00'), '看剧', '个人']], dtype=object)

#同样可以根据表头名称或者表的位置读取该表的数据
#通过表名
In [17]: sheet = pd.read_excel('example.xls',sheetname= 'Sheet2')
In [18]: sheet
Out[18]:
 1 3 5 学生
0 2 3 4 老师
1 4 1 9 教授

#通过表的位置
In [19]: sheet = pd.read_excel('example.xls',sheetname= 1)

In [20]: sheet
Out[20]:
 1 3 5 学生
0 2 3 4 老师
1 4 1 9 教授

header :指定作为列名的行,默认0,即取第一行,数据为列名行以下的数据;若数据不含列名,则设定 header = None;

#数据不含作为列名的行
In [21]: sheet = pd.read_excel('example.xls',sheetname= 1,header = None)
In [22]: sheet
Out[22]:
 0 1 2 3
0 1 3 5 学生
1 2 3 4 老师
2 4 1 9 教授
#默认第一行数据作为列名
In [23]: sheet = pd.read_excel('example.xls',sheetname= 1,header =0)
In [24]: sheet
Out[24]:
 1 3 5 学生
0 2 3 4 老师
1 4 1 9 教授

skiprows:省略指定行数的数据

In [25]: sheet = pd.read_excel('example.xls',sheetname= 1,header = None,skiprows= 1)
#略去1行的数据,自上而下的开始略去数据的行
In [26]: sheet
Out[26]:
 0 1 2 3
0 2 3 4 老师
1 4 1 9 教授

skip_footer:省略从尾部数的行数据

In [27]: sheet = pd.read_excel('example.xls',sheetname= 1,header = None,skip_footer= 1)
#从尾部开始略去行的数据
In [28]: sheet
Out[28]:
 0 1 2 3
0 1 3 5 学生
1 2 3 4 老师

index_col :指定列为索引列,也可以使用 u'string'

#指定第二列的数据作为行索引
In [30]: sheet = pd.read_excel('example.xls',sheetname= 1,header = None,skip_footer= 1,index_col=1)

In [31]: sheet
Out[31]:
 0 2 3
1
3 1 5 学生
3 2 4 老师

names:指定列的名字,传入一个list数据

In [32]: sheet = pd.read_excel('example.xls',sheetname= 1,header = None,skip_footer= 1,index_col=1,names=['a','b','c'])
 ...:

In [33]: sheet
Out[33]:
 a b c
1
3 1 5 学生
3 2 4 老师

总体而言,pandas库的pd.read_excel和pd.read_csv的参数比较类似,且相较之前的xlrd库的读表操作更加简单,针对一般批量的数据处理最好选择pandas库操作。但是功能有待完善或者本次研究的不够深入,比如合并单元格的问题,欢迎一起讨论交流。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
Python中使用Tkinter模块创建GUI程序实例
Jan 14 Python
Python中暂存上传图片的方法
Feb 18 Python
Python编程之多态用法实例详解
May 19 Python
python计算一个序列的平均值的方法
Jul 11 Python
Python字符串和字典相关操作的实例详解
Sep 23 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
Oct 15 Python
python 发送和接收ActiveMQ消息的实例
Jan 30 Python
python re.sub()替换正则的匹配内容方法
Jul 22 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 Python
python爬虫今日热榜数据到txt文件的源码
Feb 23 Python
Python线程之定位与销毁的实现
Feb 17 #Python
Pandas读取并修改excel的示例代码
Feb 17 #Python
Python实现去除列表中重复元素的方法总结【7种方法】
Feb 16 #Python
Python字符串逆序输出的实例讲解
Feb 16 #Python
强悍的Python读取大文件的解决方案
Feb 16 #Python
Python基础之文件读取的讲解
Feb 16 #Python
解决Python3 被PHP程序调用执行返回乱码的问题
Feb 16 #Python
You might like
谈谈PHP语法(3)
2006/10/09 PHP
谈谈PHP语法(2)
2006/10/09 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
setTimeout和setInterval的深入理解
2013/11/08 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
2013/12/28 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
我的Node.js学习之路(一)
2014/07/06 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
js css实现垂直方向自适应的三角提示菜单
2016/06/26 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
python tkinter界面居中显示的方法
2018/10/11 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
python 进程池pool使用详解
2020/10/15 Python
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
护理专业优质毕业生自荐书
2014/01/31 职场文书
应届毕业生自荐书
2014/06/18 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
庐山导游词
2015/02/03 职场文书
先进个人自荐书
2015/03/06 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
详解Python生成器和基于生成器的协程
2021/06/03 Python
java如何实现socket连接方法封装
2021/09/25 Java/Android