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爬虫实现全国失信被执行人名单查询功能示例
May 03 Python
实例讲解Python爬取网页数据
Jul 08 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
Python图像处理之gif动态图的解析与合成操作详解
Dec 30 Python
获取django框架orm query执行的sql语句实现方法分析
Jun 20 Python
如何运行.ipynb文件的图文讲解
Jun 27 Python
python django下载大的csv文件实现方法分析
Jul 19 Python
python使用pandas抽样训练数据中某个类别实例
Feb 28 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
Python利用Xpath选择器爬取京东网商品信息
Jun 01 Python
python rsa-oaep加密的示例代码
Sep 23 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 05 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 高效率写法 推荐
2010/02/21 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
jQuery 开天辟地入门篇一
2009/12/09 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
懒加载实现的分页&&网站footer自适应
2016/12/21 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
Python解析json文件相关知识学习
2016/03/01 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
如何通过python实现全排列
2020/02/11 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
浅析Python requests 模块
2020/10/09 Python
Html5元素及基本语法详解
2016/08/02 HTML / CSS
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
项目副经理岗位职责
2013/12/30 职场文书
教师个人剖析材料
2014/02/05 职场文书
《只有一个地球》教学反思
2014/02/14 职场文书
2014年保管员工作总结
2014/11/18 职场文书
学期个人自我总结
2015/02/13 职场文书
警示教育观后感
2015/06/17 职场文书
会计实训总结范文
2015/08/03 职场文书
2016年寒假见闻
2015/10/10 职场文书
MySQL中order by的使用详情
2021/11/17 MySQL