详解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 ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
python中requests模块的使用方法
Apr 08 Python
Python中pillow知识点学习
Apr 30 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
python使用Matplotlib画条形图
Mar 25 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
Apr 12 Python
Python正则表达式匹配日期与时间的方法
Jul 07 Python
用Pelican搭建一个极简静态博客系统过程解析
Aug 22 Python
Django用户身份验证完成示例代码
Apr 03 Python
Python实现爬取网页中动态加载的数据
Aug 17 Python
Python爬取股票信息,并可视化数据的示例
Sep 26 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 $_SERVER当前完整url的写法
2009/11/12 PHP
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
PHP学习之数组的定义和填充
2011/04/17 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
JS基于贪心算法解决背包问题示例
2017/11/27 Javascript
全站最详细的Vuex教程
2018/04/13 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
关于Django外键赋值问题详解
2017/08/13 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
python把1变成01的步骤总结
2019/02/27 Python
python tkinter canvas 显示图片的示例
2019/06/13 Python
python十进制转二进制的详解
2020/02/07 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
瀑布模型都有哪些优缺点
2014/06/23 面试题
爱情检讨书大全
2014/01/21 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
我的画教学反思
2014/04/28 职场文书
娱乐节目策划方案
2014/06/10 职场文书
邓小平理论心得体会
2014/09/09 职场文书
2014教师个人自我评价范文
2014/09/13 职场文书