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中Numpy的属性与创建矩阵
Sep 10 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
Oct 30 Python
Python实现的爬取百度文库功能示例
Feb 16 Python
python psutil模块使用方法解析
Aug 01 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
Aug 09 Python
在Django下测试与调试REST API的方法详解
Aug 29 Python
python实现opencv+scoket网络实时图传
Mar 20 Python
Django中的AutoField字段使用
May 18 Python
python中前缀运算符 *和 **的用法示例详解
May 28 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
Jun 04 Python
python实现学生通讯录管理系统
Feb 25 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 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
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
2009/09/30 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
一个JavaScript变量声明的知识点
2013/10/28 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
Ajax基础知识详解
2017/02/17 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
Python实现的ini文件操作类分享
2014/11/20 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
Python+threading模块对单个接口进行并发测试
2019/06/25 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
提高python代码运行效率的一些建议
2020/09/29 Python
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
如何写出高性能的JSP和Servlet
2013/01/22 面试题
2014年公司庆元旦活动方案
2014/03/05 职场文书
大学班级计划书
2014/04/29 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
检讨书怎么写
2015/01/23 职场文书
大一学生个人总结
2015/02/15 职场文书
爱心捐助活动总结
2015/05/09 职场文书
清明节随笔
2015/08/15 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python