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中利用Pandas库处理大数据的简单介绍
Apr 07 Python
Python实现矩阵加法和乘法的方法分析
Dec 19 Python
python实现朴素贝叶斯分类器
Mar 28 Python
python基于物品协同过滤算法实现代码
May 31 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
May 10 Python
使用Python实现跳一跳自动跳跃功能
Jul 10 Python
Python爬虫使用代理IP的实现
Oct 27 Python
浅谈python中频繁的print到底能浪费多长时间
Feb 21 Python
Python request操作步骤及代码实例
Apr 13 Python
解决TensorFlow调用Keras库函数存在的问题
Jul 06 Python
基于python实现监听Rabbitmq系统日志代码示例
Nov 28 Python
python代码实现图书管理系统
Nov 30 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中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
解析ajax事件的调用顺序
2013/06/17 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
Python获取当前函数名称方法实例分享
2018/01/18 Python
使用python制作一个解压缩软件
2019/11/13 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
自荐信写法介绍
2014/01/25 职场文书
《风筝》教学反思
2014/04/10 职场文书
机关职员工作检讨书
2014/10/23 职场文书
2015年三万活动总结
2015/03/25 职场文书
承兑汇票延期证明
2015/06/23 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
2019已经过半,你知道年中工作总结该怎么写吗?
2019/07/03 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
python基础之模块的导入
2021/10/24 Python
Docker部署Mysql8的实现步骤
2022/07/07 Servers