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 25 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
Python中的字符串查找操作方法总结
Jun 27 Python
Python中使用多进程来实现并行处理的方法小结
Aug 09 Python
Python自定义线程类简单示例
Mar 23 Python
python看某个模块的版本方法
Oct 16 Python
简单了解python中对象的取反运算符
Jul 01 Python
python输出决策树图形的例子
Aug 09 Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 Python
python pillow模块使用方法详解
Aug 30 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
Sep 25 Python
python中sqllite插入numpy数组到数据库的实现方法
Jun 21 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 CURL模拟GET及POST函数代码
2010/04/25 PHP
Php Image Resize图片大小调整的函数代码
2011/01/17 PHP
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
JS使用tofixed与round处理数据四舍五入的区别
2017/10/25 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
python基础教程之类class定义使用方法
2014/02/20 Python
利用Python破解验证码实例详解
2016/12/08 Python
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
Python实现的计数排序算法示例
2017/11/29 Python
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
应届毕业生通用的自荐书范文
2014/02/07 职场文书
护理心得体会范文
2016/01/22 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript