Pandas读取并修改excel的示例代码


Posted in Python onFebruary 17, 2019

一、前言

最近总是和excel打交道,由于数据量较大,人工来修改某些数据可能会有点浪费时间,这时候就使用到了Python数据处理的神器—?Pandas库,话不多说,直接上Pandas。

二、安装

这次使用的python版本是python2.7,安装python可以去python的官网进行下载,这里不多说了。

安装完成后使用Python自带的包管理工具pip可以很快的安装pandas。

pip install pandas

如果使用的是Anaconda安装的Python,会自带pandas。

三、read_excel()介绍

首先可以先创建一个excel文件当作实验数据,名称为example.xlsx,内容如下:

name age gender
John 30 male
Mary 22 female
Smith 32 male

这里是很简单的几行数据,我们来用pandas实际操作一下这个excel表。

# coding:utf-8
import pandas as pd

data = pd.read_excel('example.xlsx', sheet_name='Sheet1')
print data

结果如下:

Pandas读取并修改excel的示例代码

这里使用了read_excel()方法来读取excel,来看一个read_excel()这个方法的API,这里只截选一部分经常使用的参数:

pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None)

这里主要参数为io,sheet_name,header,usecols和names

  • io:excel文件,如果命名为中文,在python2.7中,需要使用decode()来解码成unicode字符串,例如: pd.read_excel('示例'.decode('utf-8))
  • sheet_name:返回指定的sheet,如果将sheet_name指定为None,则返回全表,如果需要返回多个表,可以将sheet_name指定为一个列表,例如['sheet1', 'sheet2']
  • header:指定数据表的表头,默认值为0,即将第一行作为表头。
  • usecols:读取指定的列,例如想要读取第一列和第二列数据:
pd.read_excel("example.xlsx", sheet_name=None, usecols=[0, 1])

四、使用

这里先来一个在机器学习中经常使用的:将所有gender为male的值改为0,female改为1。

# coding:utf-8
import pandas as pd
from pandas import DataFrame

# 读取文件
data = pd.read_excel("example.xlsx", sheet_name="Sheet1")

# 找到gender这一列,再在这一列中进行比较
data['gender'][data['gender'] == 'male'] = 0
data['gender'][data['gender'] == 'female'] = 1
print data

结果如下:

Pandas读取并修改excel的示例代码

需要注意的是,这里的data为excel数据的一份拷贝,对data进行修改并不会直接影响到我们原来的excel,必须在修改后保存才能够修改excel。保存的代码如下:

DataFrame(data).to_excel('example.xlsx', sheet_name='Sheet1', index=False, header=True)

这时候我们再打开example.xlsx文件看看是否更改了:

Pandas读取并修改excel的示例代码 

如果我们想要新增加一列或者一行数据怎么办呢?这里给出参考:

新增列数据:

data['列名称'] = None

新增行数据,这里行的num为excel中自动给行加的id数值

data.loc[行的num] = [值1, 值2, ...]

以上面的数据为例:

# coding:utf-8
import pandas as pd
from pandas import DataFrame

data = pd.read_excel("example.xlsx", sheet_name='Sheet1')

# 增加行数据,在第5行新增
data.loc[5] = ['James', 32, 'male']

# 增加列数据,给定默认值None
data['profession'] = None

# 保存数据
DataFrame(data).to_excel('example.xlsx', sheet_name='Sheet1', index=False, header=True)

打开excel看到的结果如下:

Pandas读取并修改excel的示例代码

说完了增加一行或一列,那怎样删除一行或一列呢?

import pandas as pd
from pandas import DataFrame

data = pd.read_excel("example.xlsx", sheet_name='Sheet1')

# 删除gender列,需要指定axis为1,当删除行时,axis为0
data = data.drop('gender', axis=1)

# 删除第3,4行,这里下表以0开始,并且标题行不算在类
data = data.drop([2, 3], axis=0)

# 保存
DataFrame(data).to_excel('example.xlsx', sheet_name='Sheet1', index=False, header=True)

这时候打开excel可以看见gender列和除标题行的第3,4行被删除了。

Pandas读取并修改excel的示例代码

总结

pandas除了上述的基本功能以外,还有其它更高级的操作,想要进一步学习的小伙伴们可以去pandas网站进行学习。

Python 相关文章推荐
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
Jun 29 Python
Python中property属性实例解析
Feb 10 Python
儿童编程python入门
May 08 Python
python爬取网页转换为PDF文件
Jun 07 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
Jul 08 Python
在python image 中安装中文字体的实现方法
Aug 22 Python
Python使用selenium + headless chrome获取网页内容的方法示例
Oct 16 Python
python库matplotlib绘制坐标图
Oct 18 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
Feb 29 Python
pyqt5打包成exe可执行文件的方法
May 14 Python
Python实现去除列表中重复元素的方法总结【7种方法】
Feb 16 #Python
Python字符串逆序输出的实例讲解
Feb 16 #Python
强悍的Python读取大文件的解决方案
Feb 16 #Python
Python基础之文件读取的讲解
Feb 16 #Python
解决Python3 被PHP程序调用执行返回乱码的问题
Feb 16 #Python
Python3 修改默认环境的方法
Feb 16 #Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 #Python
You might like
PHP循环获取GET和POST值的代码
2008/04/09 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
php传值方式和ajax的验证功能
2017/03/27 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
JS获取当前时间戳方法解析
2020/08/29 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
JS实现简单贪吃蛇小游戏
2020/10/28 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
python3实现windows下同名进程监控
2018/06/21 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
python生成requirements.txt的两种方法
2019/09/18 Python
美丽的现代设计家具:2Modern
2018/07/26 全球购物
请介绍一下WSDL的文档结构
2013/03/17 面试题
煤矿班组长竞聘书
2014/03/31 职场文书
班干部演讲稿
2014/04/24 职场文书
设计专业自荐信
2014/06/19 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
校园运动会广播稿
2014/10/06 职场文书
失职检讨书大全
2015/01/26 职场文书
总结会主持词
2015/07/02 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
学校学期工作总结
2015/08/13 职场文书
学习党章心得体会2016
2016/01/15 职场文书
swagger如何返回map字段注释
2021/07/03 Java/Android
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android