详解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实现2014火车票查询代码分享
Jan 10 Python
Python Sleep休眠函数使用简单实例
Feb 02 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
Dec 15 Python
python如何对实例属性进行类型检查
Mar 20 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
Python的高阶函数用法实例分析
Apr 11 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
Nov 07 Python
python调用函数、类和文件操作简单实例总结
Nov 29 Python
python中pickle模块浅析
Dec 29 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 Python
总结Python常用的魔法方法
May 25 Python
Python 如何利用ffmpeg 处理视频素材
Nov 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 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
PHP缓冲区用法总结
2016/02/14 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
bootstrap中selectpicker下拉框使用方法实例
2018/03/22 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
Python中的pprint折腾记
2015/01/21 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
实例详解Python模块decimal
2019/06/26 Python
Python实现播放和录制声音的功能
2020/08/12 Python
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
大学在校生求职信范文
2013/11/21 职场文书
物业保安主管岗位职责
2013/12/25 职场文书
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
党支部书记先进事迹
2014/01/17 职场文书
电子商务专业求职信
2014/03/08 职场文书
银行行长竞聘演讲稿
2014/04/23 职场文书
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
全面盘点MySQL中的那些重要日志文件
2021/11/27 MySQL