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 相关文章推荐
详解Python发送邮件实例
Jan 10 Python
tensorflow实现对图片的读取的示例代码
Feb 12 Python
Flask框架各种常见装饰器示例
Jul 17 Python
python3 中文乱码与默认编码格式设定方法
Oct 31 Python
python实现简单多人聊天室
Dec 11 Python
Python实现DDos攻击实例详解
Feb 02 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
Jul 11 Python
对DJango视图(views)和模版(templates)的使用详解
Jul 17 Python
python 实现return返回多个值
Nov 19 Python
Python yield生成器和return对比代码实例
Apr 20 Python
Python中logger日志模块详解
Aug 04 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
写一个用户在线显示的程序
2006/10/09 PHP
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
老生常谈PHP中的数据结构:DS扩展
2017/07/17 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
JS中处理时间之setUTCMinutes()方法的使用
2015/06/12 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
JS解决移动web开发手机输入框弹出的问题
2017/03/31 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
使用setup.py安装python包和卸载python包的方法
2013/11/27 Python
Python入门教程之运算符与控制流
2016/08/17 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
详解python 爬取12306验证码
2019/05/10 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
django fernet fields字段加密实践详解
2019/08/12 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
护理专业本科生自荐信
2013/10/01 职场文书
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
学校食品安全实施方案
2014/06/14 职场文书
医德医风自我评价2015
2015/03/03 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
java代码实现空间切割
2022/01/18 Java/Android
JS高级程序设计之class继承重点详解
2022/07/07 Javascript