当前位置: 首页 > article >正文

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

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

     一、安装环境:

 1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令是:pip install xlrd2:安装pandas模块还需要一定的编码环境,所以我们自己在安装的时候,确保你的电脑有这些环境:Net.4 、VC-Compiler以及winsdk_web,如果大家没有这些软件~可以咨询我们的辅导员索要相关安装工具。3:步骤1和2 准备好了之后,我们就可以开始安装pandas了,安装命令是:pip install pandas一切准备就绪,就可以开始愉快的玩耍咯!
ps:在这个过程中,可能会遇到安装不顺利的情况,万能的度娘有N种解决方案,你这么大应该要学着自己解决问题。

       二、pandas操作Excel表单

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

Python的表单数据如下所示:

student的表单数据如下所示:

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

import  pandas  as pd

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

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

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

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

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

#方法三:通过表单索引来指定要访问的表单,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))

得到的结果如下所示:

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","pw":"12345678"}'][3 '正常充值' '{"mobilephone":"18688773467","amount":"1000"}'][1 '正常登录' '{"mobilephone":"18688773467","pw":"123456"}']]

9:获取指定列的值:

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

四: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","pw":"123456"}'}, 
{'title': '输入错误的密码', 'case_id': 2, 'data': '{"mobilephone":"18688773467","pw":"12345678"}'}, 
{'title': '正常充值', 'case_id': 3, 'data': '{"mobilephone":"18688773467","amount":"1000"}'}, 
{'title': '充值输入负数', 'case_id': 4, 'data': '{"mobilephone":"18688773467","amount":"-100"}'}]

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/299951.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章:

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

最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么…...

如何指定标签在页面中显示的位置

如何指定标签在页面中显示的位置 在HTML页面设计中常常需要调整标签(元素)的位置,那么,如何指定标签在页面中显示的位置呢? 使用标签的align属性指定标签在页面中显示的位置,如align"left|right|cen…...

[附源码]Python计算机毕业设计SSM基于java旅游信息分享网站(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…...

Kubernetes——Debug Static Pod

1. 问题背景 注意,我这里的Static Pod并非Kubernetes的Static Pod,而是需要把想要Debug的程序放到Delve环境中重新打包一个镜像。因为还有另外一种场景,那就是我们需要不重启Running Pod,为了和这种方式区分,才以此为…...

Docker常用容器命令

常用容器命令 有镜像才能创建容器,这是根本前提(下载一个ubuntu镜像演示) docker pull ubuntu:18.04 新建并启动容器 格式: docker run [OPTIONS] IMAGE [COMMAND] [ARG…] 参数说明: OPTIONS说明(常用)&#xff1a…...

为什么 char[] 优于 String 的密码?

问: 在 Swing 中,密码字段有一个 getPassword()(返回 char[])方法,而不是通常的 getText()(返回 String)方法。同样,我遇到了一个建议,不要使用 String 来处理密码。 为…...

如何识别网络应用层协议?

能够标识出 Internet上每个流所使用的应用层协议是一系列网络应用的前提和基础。然而随着网络的高速化和协议的复杂化,传统的基于端 口识别应用层协议的算法已经不够准确,因此各种新的协议识别算法成为研究热点 。 本篇文章将重点介绍协议识别问题的几个…...

skynet的actor对等调度分析

skynet的actor对等调度一、actor对等调度二、调度流程源码分析2.1、thread_worker()2.2、struct skynet_context2.3、skynet_context_message_dispatch()2.4、dispatch_message()三、c语言到lua的调用过程分析总结后言一、actor对等调度 actor的调度由线程池来调度。actor是被…...

01背包问题以及有关题目

一、01背包问题详解 确定dp数组以及下标的含义 使用二维数组 dp[i] [j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。 确定递推公式 dp数组的初始化 首先从dp[i][j] 的定义出发,如果背包容量j为0的话&#…...

SSM 学习管理系统

SSM 学习管理系统 SSM 学习管理系统 功能介绍 首页 图片轮播展示 网站公告 学生注册 教师注册 课程资料 视频学习 友情链接 资料详情 学习进度 评论 收藏 后台管理 登录 管理员管理 修改密码 网站公告管理 友情链接管理 轮播图管理 学生管理 班级管理 我的班级管理 教师管理…...

贪吃蛇游戏代码(javascript编写)

<html> <head> <title>简单贪吃蛇</title> <style type"text/css"> <!-- .food{background-color:green} .snake{background-color:red} --> </style></head><body onLoad"javascript:cr…...

php5.2+apache2.8+mysql5+phpmyadmin2.9安装及配置

先准备好软件&#xff1a; 一、安装Apache&#xff0c;配置成功一个普通网站服务器 运行下载好的“apache_2.0.55-win32-x86-no_ssl.msi”&#xff0c;出现如下界面&#xff1a; 出现Apache HTTP Server 2.0.55的安装向导界面&#xff0c;点“Next”继续 确认同意…...

IEEE 754 浮点数的表示精度探讨

前言 从网上看到不少程序员对浮点数精度问题有很多疑问&#xff0c;在论坛上发贴询问&#xff0c;很多热心人给予了解答&#xff0c;但我发现一些解答中有些许小的错误和认识不当之处。我曾经做过数值算法程序&#xff0c;虽然基本可用&#xff0c;但是被浮点数精度问题所困扰…...

4n+3的形式的质数有无穷多个

证明&#xff1a;假设只有有限多个 4n3 型的质数&#xff0c; 它们分别是 P(1), P(2), ..., P(k). 令 QP(1)^2P(2)^2...P(k)^22, 首先&#xff0c; P(1)^2, P(2)^2 等等都是 4n1 型的数&#xff0c;所以 Q 是 4n3 型的数。 Q 只能有 4n1 型和 4n3 型的素因数&#xff0c;而且至…...

多事之秋

诗人&#xff1a;姜力维 秋天 一个复杂的季节 万般情感 化作跨越时空的吟诵 敲击着 古今中外 敏感脆弱你我的心灵 秋 真的是黄色的么 金灿灿 沉甸甸 诱人的欲望横流 可南国我的眼前 却满眼翠绿 秋 真的是浪漫的么 轻飘飘 明晃晃 激越的情感涌动 我目及耳闻的…...

php 做图类

<?php //把角度转换为弧度 function deg2Arc($degrees) {return ($degrees * (pi () / 180.0)); }//获取RGB function getRGB($color) {$R ($color >> 16) & 0xff;$G ($color >> 8) & 0xff;$B ($color) & 0xff;return (array ($R, $G, $B )); }…...

我的jpgraph使用实例

<?phpinclude ("jpgraph/jpgraph.php"); include ("jpgraph/jpgraph_bar.php"); include_once ("jpgraph/jpgraph_pie.php");include_once ("jpgraph/jpgraph_pie3d.php"); //$title 图片标题//$dataArray array(数据1&#x…...

实用的JS代码技术

事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey 事件返回值 event.returnValue 鼠标位置 eve…...

JpGraph入门(jpgraph-2.2)

JpGraph入门&#xff0c; 官方网站&#xff1a;http://www.aditus.nu/jpgraph/ 在线手册http://doc.async.com.br/jpgraph/html/ 本文是我从其它人的例子其手册上综合写上来的&#xff0c;针对版本为jpgraph-2.2 根据手册上的步骤 第一&#xff1a;配置 ######################…...

删除grub恢复windows操作系统的启动

Linux的grub是一个非常好的引导程序&#xff0c;它可以引导多操作系统。当windows和linux共存时有时候我们想删除 grub,重新启用单一的windows该如何操作呢&#xff0c;本文会给答案的。 由于windows 2000、windows XP、windows 2003的启动机制与vista 的启动管理器有明显的差…...