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的Django框架代码的一些示例
Apr 20 Python
分析Python中解析构建数据知识
Jan 20 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
Feb 07 Python
python3 selenium 切换窗口的几种方法小结
May 21 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
pandas.DataFrame.to_json按行转json的方法
Jun 05 Python
python 多线程将大文件分开下载后在合并的实例
Nov 09 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
python绘制规则网络图形实例
Dec 09 Python
Python基于QQ邮箱实现SSL发送
Apr 26 Python
python UIAutomator2使用超详细教程
Feb 19 Python
python微信智能AI机器人实现多种支付方式
Apr 12 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 cc攻击代码与防范方法
2012/10/18 PHP
php 如何获取数组第一个值
2013/08/06 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
jQuery textarea的长度进行验证
2009/05/06 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
vue-router实现tab标签页(单页面)详解
2017/10/17 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
让axios发送表单请求形式的键值对post数据的实例
2018/08/11 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
2019/08/16 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
python类继承与子类实例初始化用法分析
2015/04/17 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
Python-接口开发入门解析
2019/08/01 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
研发工程师的岗位职责
2013/11/18 职场文书
策划总监岗位职责
2014/02/16 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
Vue项目打包、合并及压缩优化网页响应速度
2021/07/07 Vue.js