详解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采用Django开发自己的博客系统
Sep 29 Python
Python 实现随机数详解及实例代码
Apr 15 Python
Python实现扩展内置类型的方法分析
Oct 16 Python
Python 数据库操作 SQLAlchemy的示例代码
Feb 18 Python
python简单实现AES加密和解密
Mar 28 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
python多任务之协程的使用详解
Aug 26 Python
Python Django中的STATIC_URL 设置和使用方式
Mar 27 Python
python 图像插值 最近邻、双线性、双三次实例
Jul 05 Python
python实现控制台输出颜色
Mar 02 Python
pytorch 实现在测试的时候启用dropout
May 27 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提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
js函数获取html中className所在的内容并去除标签
2013/09/08 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
jQuery中index()方法用法实例
2014/12/27 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
ES6中的Promise代码详解
2017/10/09 Javascript
解决vue 更改计算属性后select选中值不更改的问题
2018/03/02 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
使用Mock.js生成前端测试数据
2020/12/13 Javascript
利用python发送和接收邮件
2016/09/27 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
python 用下标截取字符串的实例
2018/12/25 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
2020/02/21 Python
HTML5标签大全
2016/11/23 HTML / CSS
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
Unix控制后台进程都有哪些进程
2016/09/22 面试题
大一自我鉴定范文
2013/10/04 职场文书
工作过失检讨书
2014/02/23 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
入团介绍人意见范文
2015/06/04 职场文书
大学生十八大感想
2015/08/11 职场文书