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基础教程之数字处理(math)模块详解
Mar 25 Python
Python网页解析利器BeautifulSoup安装使用介绍
Mar 17 Python
Python实现自动登录百度空间的方法
Jun 10 Python
Python中实现最小二乘法思路及实现代码
Jan 04 Python
python和pygame实现简单俄罗斯方块游戏
Feb 19 Python
python 文件转成16进制数组的实例
Jul 09 Python
python操作excel文件并输出txt文件的实例
Jul 10 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
Python中url标签使用知识点总结
Jan 16 Python
Python处理PDF与CDF实例
Feb 26 Python
python 第三方库paramiko的常用方式
Feb 20 Python
Python django中如何使用restful框架
Jun 23 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扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
jQuery控制元素隐藏和显示
2017/03/03 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
python编程之requests在网络请求中添加cookies参数方法详解
2017/10/25 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
python实现猜拳游戏
2020/03/04 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
编程实现去掉XML的重复结点
2014/05/28 面试题
草船借箭教学反思
2014/02/03 职场文书
煤矿安全承诺书
2014/05/22 职场文书
2014党支部对照检查材料思想汇报
2014/10/05 职场文书
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android