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求两个list的差集、交集与并集的方法
Nov 01 Python
python操作ssh实现服务器日志下载的方法
Jun 03 Python
Python3多目标赋值及共享引用注意事项
May 27 Python
python识别图像并提取文字的实现方法
Jun 28 Python
python中的colorlog库使用详解
Jul 05 Python
Python实现制度转换(货币,温度,长度)
Jul 14 Python
Python Django简单实现session登录注销过程详解
Aug 06 Python
Python  Django 母版和继承解析
Aug 09 Python
Python环境Pillow( PIL )图像处理工具使用解析
Sep 12 Python
python科学计算之narray对象用法
Nov 25 Python
Python爬虫回测股票的实例讲解
Jan 22 Python
Python+OpenCV实现图片中的圆形检测
Apr 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
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
js实现类bootstrap模态框动画
2017/02/07 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
Linux系统(CentOS)下python2.7.10安装
2018/09/26 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
HTML5超文本标记语言的实现方法
2020/09/24 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
2014年文员工作总结
2014/11/18 职场文书
2014年班务工作总结
2014/12/02 职场文书
Axios取消重复请求的方法实例详解
2021/06/15 Javascript
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫