Python利用pandas处理Excel数据的应用详解


Posted in Python onJune 18, 2019

最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用pandas就会非常高效,基本上3行代码可以搞定你20行代码的操作!该教程仅仅限于结合柠檬班的全栈自动化测试课程来讲解下pandas在项目中的应用,这仅仅只是冰山一角,希望大家可以踊跃的去尝试和探索!

一、安装环境:

 1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令是:pip install xlrd

2:安装pandas模块还需要一定的编码环境,所以我们自己在安装的时候,确保你的电脑有这些环境:Net.4 、VC-Compiler以及winsdk_web,如果大家没有这些软件~可以咨询我们的辅导员索要相关安装工具。

3:步骤1和2 准备好了之后,我们就可以开始安装pandas了,安装命令是:pip install pandas

一切准备就绪,就可以开始愉快的玩耍咯!

ps:在这个过程中,可能会遇到安装不顺利的情况,万能的度娘有N种解决方案,你这么大应该要学着自己解决问题。

二、pandas操作Excel表单

数据准备,有一个Excel文件:lemon.xlsx有两个表单,表单名分别为:Python 以及student,

Python的表单数据如下所示:

Python利用pandas处理Excel数据的应用详解

student的表单数据如下所示:

Python利用pandas处理Excel数据的应用详解

1:在利用pandas模块进行操作前,可以先引入这个模块,如下:

import pandas as pd

2:读取Excel文件的两种方式:

#方法一:默认读取第一个表单
df=pd.read_excel('lemon.xlsx')#这个会直接默认读取到这个Excel的第一个表单
data=df.head()#默认读取前5行的数据
print("获取到所有的值:\n{0}".format(data))#格式化输出

得到的结果是一个二维矩阵,如下所示:

Python利用pandas处理Excel数据的应用详解

#方法二:通过指定表单名的方式来读取
df=pd.read_excel('lemon.xlsx',sheet_name='student')#可以通过sheet_name来指定读取的表单
data=df.head()#默认读取前5行的数据
print("获取到所有的值:\n{0}".format(data))#格式化输出

得到的结果如下所示,也是一个二维矩阵:

Python利用pandas处理Excel数据的应用详解

#方法三:通过表单索引来指定要访问的表单,0表示第一个表单
#也可以采用表单名和索引的双重方式来定位表单
#也可以同时定位多个表单,方式都罗列如下所示
df=pd.read_excel('lemon.xlsx',sheet_name=['python','student'])#可以通过表单名同时指定多个
# df=pd.read_excel('lemon.xlsx',sheet_name=0)#可以通过表单索引来指定读取的表单
# df=pd.read_excel('lemon.xlsx',sheet_name=['python',1])#可以混合的方式来指定
# df=pd.read_excel('lemon.xlsx',sheet_name=[1,2])#可以通过索引 同时指定多个
data=df.values#获取所有的数据,注意这里不能用head()方法哦~
print("获取到所有的值:\n{0}".format(data))#格式化输出

具体结果是怎样的,同学们可以自己一个一个的去尝试,这个结果是非常有意思的,但是同时同学们也发现了,这个数据是一个二维矩阵,对于我们去做自动化测试,并不能很顺利的处理,所以接下来,我们就会详细的讲解,如何来读取行号和列号以及每一行的内容 以及制定行列的内容。

三、pandas操作Excel的行列

1:读取指定的单行,数据会存在列表里面

#1:读取指定行
df=pd.read_excel('lemon.xlsx')#这个会直接默认读取到这个Excel的第一个表单
data=df.ix[0].values#0表示第一行 这里读取数据并不包含表头,要注意哦!
print("读取指定行的数据:\n{0}".format(data))

得到的结果如下所示:

Python利用pandas处理Excel数据的应用详解

2:读取指定的多行,数据会存在嵌套的列表里面:

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2]].values#读取指定多行的话,就要在ix[]里面嵌套列表指定行数
print("读取指定行的数据:\n{0}".format(data))

3:读取指定的行列:

df=pd.read_excel('lemon.xlsx')
data=df.ix[1,2]#读取第一行第二列的值,这里不需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

4:读取指定的多行多列值:

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2],['title','data']].values#读取第一行第二行的title以及data列的值,这里需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

5:获取所有行的指定列

df=pd.read_excel('lemon.xlsx')
data=df.ix[:,['title','data']].values#读所有行的title以及data列的值,这里需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

6:获取行号并打印输出

df=pd.read_excel('lemon.xlsx')
print("输出行号列表",df.index.values)

输出结果是:
输出行号列表 [0 1 2 3]

7:获取列名并打印输出

df=pd.read_excel('lemon.xlsx')
print("输出列标题",df.columns.values)

运行结果如下所示:
输出列标题 ['case_id' 'title' 'data']

8:获取指定行数的值:

df=pd.read_excel('lemon.xlsx')
print("输出值",df.sample(3).values)#这个方法类似于head()方法以及df.values方法

输出值
 [[2 '输入错误的密码' '{"mobilephone":"18688773467","pwd":"12345678"}']
 [3 '正常充值' '{"mobilephone":"18688773467","amount":"1000"}']
 [1 '正常登录' '{"mobilephone":"18688773467","pwd":"123456"}']]

9:获取指定列的值:

df=pd.read_excel('lemon.xlsx')
print("输出值\n",df['data'].values)

四:pandas处理Excel数据成为字典

我们有这样的数据,Python利用pandas处理Excel数据的应用详解,处理成列表嵌套字典,且字典的key为表头名。

实现的代码如下所示:

df=pd.read_excel('lemon.xlsx')
test_data=[]
for i in df.index.values:#获取行号的索引,并对其进行遍历:
  #根据i来获取每一行指定的数据 并利用to_dict转成字典
  row_data=df.ix[i,['case_id','module','title','http_method','url','data','expected']].to_dict()
  test_data.append(row_data)
print("最终获取到的数据是:{0}".format(test_data))

最后得到的结果是:

最终获取到的数据是:
[{'title': '正常登录', 'case_id': 1, 'data': '{"mobilephone":"18688773467","pwd":"123456"}'},
{'title': '输入错误的密码', 'case_id': 2, 'data': '{"mobilephone":"18688773467","pwd":"12345678"}'},
{'title': '正常充值', 'case_id': 3, 'data': '{"mobilephone":"18688773467","amount":"1000"}'},
{'title': '充值输入负数', 'case_id': 4, 'data': '{"mobilephone":"18688773467","amount":"-100"}'}]

关于pandas的学习,今天就告一段落啦!赶紧打开pycharm跑起来!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
浅谈Python中用datetime包进行对时间的一些操作
Jun 23 Python
Python应用03 使用PyQT制作视频播放器实例
Dec 07 Python
Python科学计算之Pandas详解
Jan 15 Python
Python numpy 点数组去重的实例
Apr 18 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
python 判断文件还是文件夹的简单实例
Jun 10 Python
python的json中方法及jsonpath模块用法分析
Dec 06 Python
python socket通信编程实现文件上传代码实例
Dec 14 Python
Django多进程滚动日志问题解决方案
Dec 17 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
Python+OpenCV图像处理——实现轮廓发现
Oct 23 Python
PyCharm2020.3.2安装超详细教程
Feb 08 Python
PyQt5固定窗口大小的方法
Jun 18 #Python
Python格式化字符串f-string概览(小结)
Jun 18 #Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
Jun 18 #Python
PyQt编程之如何在屏幕中央显示窗体的实例
Jun 18 #Python
pycharm访问mysql数据库的方法步骤
Jun 18 #Python
python实现五子棋人机对战游戏
Mar 25 #Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 #Python
You might like
php 随机生成10位字符代码
2009/03/26 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
PHP COOKIE及时生效的方法介绍
2014/02/14 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
[01:44]Ti10举办地公布
2019/08/25 DOTA
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
跟老齐学Python之总结参数的传递
2014/10/10 Python
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
Python流程控制常用工具详解
2020/02/24 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
餐饮采购员岗位职责
2014/03/15 职场文书
关工委先进个人事迹材料
2014/05/23 职场文书
工商局个人工作总结
2015/03/03 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
配置Kubernetes外网访问集群
2022/03/31 Servers