Pandas读取并修改excel的示例代码
作者:Debris丶 发布时间:2022-08-18 23:27:34
一、前言
最近总是和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
结果如下:
这里使用了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
结果如下:
需要注意的是,这里的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-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看到的结果如下:
说完了增加一行或一列,那怎样删除一行或一列呢?
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除了上述的基本功能以外,还有其它更高级的操作,想要进一步学习的小伙伴们可以去pandas网站进行学习。
来源:https://blog.csdn.net/qq_34377830/article/details/81872568
猜你喜欢
- 本文实例讲述了Python将名称映射到序列元素中的方法。分享给大家供大家参考,具体如下:问题:希望通过名称来访问元素,减少结构中对位置的依赖
- 1. 背景在深度学习的任务中,通常需要比较复杂的参数以及输入输出配置,比如需要不同的训练data,不同的模型,写入不同的log文件,输出到不
- 前言本文从代码复用的角度一步一步演示如何从python普通代码进化到面向对象,并通过代码去解释一些面向对象的理论。所以,本文前面的内容都是非
- hasattr()函数hasattr()函数用于判断是否包含对应的属性语法:hasattr(object,name)参数:object--对
- 本文实例讲述了PHP排序二叉树基本功能实现方法。分享给大家供大家参考,具体如下:这里演示了排序二叉树节点的插入,中序遍历,极值的查找和特定值
- BP神经网络是最简单的神经网络模型了,三层能够模拟非线性函数效果。难点:如何确定初始化参数?如何确定隐含层节点数量?迭代多少次?如何更快收敛
- JetBrains网址:https://www.jetbrains.com/shop/eform/students注册成功后,在校期间都可以
- 这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。1 如何创建指定长度且有特定值的list不推荐方式l
- 在pandas里面常用value_counts确认数据出现的频率。1. Series 情况下:pandas 的 value_counts()
- 前言:过完520,咱们来玩玩五子棋陶冶情操。快拿这个和你女朋友去对线。多的不说直接进入正题人人对战游戏规则:p1为黑子,p2为白子,黑子先手
- swagger介绍Swagger本质上是一种用于描述使用JSON表示的RESTful API的接口描述语言。Swagger与一组开源软件工具
- 根据网上的一些说法,在python里获取ms级系统时间可以通过以下方式获取:import datetimeprint(datetime.da
- 继续Mootools的扩展,适用于Mootools 1.1及1.2,这次在Element扩展了两个非常简单的方法,一个用来获取
- 前言在自学机器学习或者是深度学习的过程中,有的时候总想把执行过程或者执行结果显示出来,所以就想到了动画。好在用 Python 实现动画有许多
- 看了好多登录注册和注销的教程,很乱,很迷,然后总结了一下,简单的做了一个登录,注册和注销的页面。1,首先,使用pycharm创建一个项目单击
- 获取首页元素信息:目标 test_URL:http://www.xxx.com.cn/首先检查元素,a 标签下是我们需要爬取得链接,通过获取
- 前言WSGI 有三个部分, 分别为服务器(server), 应用程序(application) 和中间件(middleware). 已经知道
- 使用工具:Python2.7 点我下载scrapy框架sublime text3一。搭建python(Windows版本) 1.安
- 案例一:某套图网站,套图以封面形式展现在页面,需要依次点击套图,点击广告盘链接,最后到达百度网盘展示页面。这一过程通过爬虫来实现,收集百度网
- 本文实例为大家分享了opencv矿石图片检测矿石数量的具体代码,供大家参考,具体内容如下原始矿石图片此类图片是高躁图,二值化后图像如下采用膨