怎么利用pandas做数据分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么利用pandas做数据分析相关的知识,希望对你有一定的参考价值。

参考技术A Pandas是Python下一个开源数据分析的库,它提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐操作。
1. 基本使用:创建DataFrame. DataFrame是一张二维的表,大家可以把它想象成一张Excel表单或者Sql表。Excel 2007及其以后的版本的最大行数是1048576,最大列数是16384,超过这个规模的数据Excel就会弹出个框框“此文本包含多行文本,无法放置在一个工作表中”。Pandas处理上千万的数据是易如反掌的sh事情,同时随后我们也将看到它比SQL有更强的表达能力,可以做很多复杂的操作,要写的code也更少。
说了一大堆它的好处,要实际感触还得动手码代码。首要的任务就是创建一个DataFrame,它有几种创建方式:
(1)列表,序列(pandas.Series), numpy.ndarray的字典
二维numpy.ndarray
别的DataFrame
结构化的记录(structured arrays)
(2)其中,二维ndarray创建DataFrame,代码敲得最少:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4))
df
0 1 2 3
0 0.927474 0.127571 1.655908 0.570818
1 -0.425084 -0.382933 0.468073 -0.862898
2 -1.602712 -0.225793 -0.688641 1.167477
3 -1.771992 -0.692575 -0.693494 -1.063697
4 -0.456724 0.371165 1.883742 -0.344189
5 1.024734 0.647224 1.134449 0.266797
6 1.247507 0.114464 2.271932 -0.682767
7 -0.190627 -0.096997 -0.204778 -0.440155
8 -0.471289 -1.025644 -0.741181 -1.707240
9 -0.172242 0.702187 -1.138795 -0.112005
(3)通过describe方法,可以对df中的数据有个大概的了解:
df.describe()
0 1 2 3
count 10.000000 10.000000 10.000000 10.000000
mean -0.189096 -0.046133 0.394722 -0.320786
std 1.027134 0.557420 1.258019 0.837497
min -1.771992 -1.025644 -1.138795 -1.707240
25% -0.467648 -0.343648 -0.692281 -0.817865
50% -0.307856 0.008734 0.131648 -0.392172
75% 0.652545 0.310266 1.525543 0.172096
max 1.247507 0.702187 2.271932 1.167477
2. 改变cell。
3. group by。
4. 读写文件。

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

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

 

       最近迷上了高效处理数据的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的表单数据如下所示:

 

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","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数据成为字典

 我们有这样的数据,,处理成列表嵌套字典,且字典的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做数据分析的主要内容,如果未能解决你的问题,请参考以下文章

如何利用Python中的Pandas库绘制柱形图

数据分析—学会用pandas做多层索引

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

python中利用pandas怎么处理缺省值

pandas python 怎么删除表格中的某一行

pandas之折线图(plot)