Pandas读取并修改excel的示例代码
技术  /  管理员 发布于 7年前   252
一、前言
最近总是和excel打交道,由于数据量较大,人工来修改某些数据可能会有点浪费时间,这时候就使用到了Python数据处理的神器―CPandas库,话不多说,直接上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-8import pandas as pddata = pd.read_excel('example.xlsx', sheet_name='Sheet1')print data
结果如下:
这里使用了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
pd.read_excel("example.xlsx", sheet_name=None, usecols=[0, 1])
四、使用
这里先来一个在机器学习中经常使用的:将所有gender为male的值改为0,female改为1。
# coding:utf-8import pandas as pdfrom pandas import DataFrame# 读取文件data = pd.read_excel("example.xlsx", sheet_name="Sheet1")# 找到gender这一列,再在这一列中进行比较data['gender'][data['gender'] == 'male'] = 0data['gender'][data['gender'] == 'female'] = 1print data
结果如下:
需要注意的是,这里的data为excel数据的一份拷贝,对data进行修改并不会直接影响到我们原来的excel,必须在修改后保存才能够修改excel。保存的代码如下:
DataFrame(data).to_excel('example.xlsx', sheet_name='Sheet1', index=False, header=True)
这时候我们再打开example.xlsx文件看看是否更改了:
如果我们想要新增加一列或者一行数据怎么办呢?这里给出参考:
新增列数据:
data['列名称'] = None
新增行数据,这里行的num为excel中自动给行加的id数值
data.loc[行的num] = [值1, 值2, ...]
以上面的数据为例:
# coding:utf-8import pandas as pdfrom pandas import DataFramedata = pd.read_excel("example.xlsx", sheet_name='Sheet1')# 增加行数据,在第5行新增data.loc[5] = ['James', 32, 'male']# 增加列数据,给定默认值Nonedata['profession'] = None# 保存数据DataFrame(data).to_excel('example.xlsx', sheet_name='Sheet1', index=False, header=True)
打开excel看到的结果如下:
说完了增加一行或一列,那怎样删除一行或一列呢?
import pandas as pdfrom pandas import DataFramedata = pd.read_excel("example.xlsx", sheet_name='Sheet1')# 删除gender列,需要指定axis为1,当删除行时,axis为0data = 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除了上述的基本功能以外,还有其它更高级的操作,想要进一步学习的小伙伴们可以去pandas网站进行学习。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号