您的位置:

python的corr函数(python的corr函数的应用)

本文目录一览:

python计算多个数组的相关性

线性相关:主要采用皮尔逊相关系数来度量连续变量之间的线性相关强度;

线性相关系数|r| 相关程度

0=|r|0.3 低度相关

0.3=|r|0.8 中度相关

0.8=|r|1 高度相关

1 函数

相关分析函数:

DataFrame.corr()

Series.corr(other)

说明:

如果由数据框调用corr方法,那么将会计算每个列两两之间的相似度

如果由序列调用corr方法,那么只是计算该序列与传入序列之间的相关度

返回值:

dataFrame调用:返回DataFrame

Series调用: 返回一个数值型,大小为相关度

2 案例

import pandas

data=pandas.read_csv('C:\\Users\\Desktop\\test.csv')

print(data.corr())

#由数据框调用corr方法,将会计算每个列两两之间的相似度,返回的是一个矩形

print(data['人口'].corr(data['文盲率']))

#由某一列调用corr方法,只是计算该序列与传入序列(本例中的'文盲率')之间的相关度

print(data['超市购物率','网上购物率','文盲率','人口']).corr()

python相关性分析如何生成两个相关性最强的两门?

方法/步骤

第一步我们首先需要知道相关性主要有两个方向,一个是正方向一个是负方向,相关性系数是衡量两个变量之间影响程度,如下图所示:

请点击输入图片描述

第二步下面通过公式计算两个变量之间相关性系数,代码如下:

import numpy

import pandas

X = [52,19,7,33,2]

Y = [162,61,22,100,6]

#公式计算#均值XMean = numpy.mean(X)

YMean = numpy.mean(Y)

#标准差XSD = numpy.std(X)

YSD = numpy.std(Y)

#z分数ZX = (X-XMean)/XSD

ZY = (Y-YMean)/YSD#相关系数

r = numpy.sum(ZX*ZY)/(len(X))

print(r)

请点击输入图片描述

第三步运行程序,可以得到相关性系数r ,r的值是0.999674032661831,相关性非常高,如下图所示:

请点击输入图片描述

第四步我们也可以通过numpy的corrcoef方法计算相关性系数,输入代码

t=numpy.corrcoef(X,Y)

print(t)

可以看到X与Y和Y与X的相关性系数,如下图所示:

请点击输入图片描述

请点击输入图片描述

第五步我们也可以通过pandas的corr方法计算相关性系数,代码

data = pandas.DataFrame({'X':X,'Y':Y})

t2=data.corr()

print(t2)

得到了相同的结果,如下图所示:

请点击输入图片描述

请点击输入图片描述

python数据分析模块:numpy、pandas全解

一维数组情况:

二维数组情况:

3参数情况:

2参数情况:

1参数情况:

一维情况:

二维情况:

一维情况:

二维情况:

一维情况:

二维情况:第三个参数指定维度

只查看行数、或者列数

逗号隔开两个索引

某些行

某些列

可以看出append()函数在二维数组中添加元素,结果转为了一维数组。

那怎么保持二维数组呢?可以设置axis参数按行或者按列添加

可以看出先把二维数组降成了一维数组,再在索引为1的位置添加元素。

那么怎么保持在二维添加元素呢? 同样设置axis参数

也分按行和按列删除

标记缺失值: isnan()函数

补充缺失值:

同样axis参数可以指定拼接按行还是按列

2. hstack()函数:以水平堆叠的方式拼接数组

3. vstack()函数:以垂直堆叠的方式拼接数组

第二个参数还可以是数组,指定拆分的位置

hsplit()函数:横向拆成几个数组

vsplit()函数:纵向拆成几个数组

数组与数组之间的运算

数组与数值的运算

可以指定整个数组求和,还是按行或者按列

axis=0:每一列的元素求和

axis=1:每一行的元素求和

axis=0:每一列求均值

axis=1:每一行求均值

axis=0:每一列求最大值

axis=1:每一行求最大值

pandas有两个重要的数据结构对象:Series和DataFrame。

Series是创建一个一维数组对象,会自动生成行标签。

会自动生成行列标签

也可以用字典形式生成数据

在用字典生成数据的基础上,同时指定行标签

例如对下表的数据进行读取

4月是第四个表,我们应把sheet_name参数指定为3;因为索引是从0开始的。

可以看出read_excel()函数自动创建了一个DataFrame对象,同时自动把第一行数据当做列标签。

可以看出不给出header参数时,该参数默认为0。

header=1时结果如下:

header=None时结果如下:

index_col=0时,第0列为列标签

index_col=0时

usecols=[2]:指定第二列

指定多列

数据如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j1SHxY8y-1637655972909)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211114192949607.png)]

nrows=3时

head()函数中参数为空默认前5行

指定head(3)时如下

numpy模块也是shape

查看特定列的书库类型

特定列数据类型转换

先查看一下所有数据

与单行相比,结果显示的格式不一样了

iloc()挑选:

或者给出区间

挑选数据要么标签,要么索引挑选

或者

或者写成区间

标签挑选

或者索引挑选

先查看一下数据

或者用字典一对一修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a6QKIoie-1637655972912)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123110431201.png)]

isin()函数查看表中是否有该值

查看特定列是否有该值

可以看出上述代码并没有替换,那怎么替换呢?

末尾插入一列

指定插入到哪列

axis参数可以指定删除行还是删除列

指定标签删除

指定索引删除

方法三

指定行标签删除

指定索引删除

方法三:

先查看所有数据

info()函数查看数据类型,还可以查看是否有缺失值

isnull()函数查看是否有缺失值

在numpy模块中用isnan()函数

删除有缺失值的行

删除整行都为缺失值的行: 需要指定how参数

不同列的缺失值设置不同的填充值

默认保留第一个重复值所在的行,删除其他重复值所在的行

保留第一个重复值所在的行

保留最后一个重复值所在的行

是重复的就删除

降序如下

参数指定first时,表示在数据有重复值时,越先出现的数据排名越靠前

获取产品为单肩包的行数据

获取数量60的行数据

获取产品为单肩包 且 数量60 的行数据

获取产品为单肩包 或 数量60 的行数据

stack()函数转换成树形结构

how参数指定外连接

on参数指定按哪一列合并

concat()函数采用 全连接 的方式,没有的数设置为缺失值

重置行标签

效果与concat()一样

末尾添加行元素

指定列求和

指定列求均值

指定列求最值

获取单列的

corr()函数获取相关系数

获取指定列与其他列的相关系数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-46g9qgQw-1637655972913)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123135643804.png)]

groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。

分组后获取指定列的汇总情况

获取多列的汇总情况

获取多列的情况

ta = pd.read_excel(‘相关性分析.xlsx’)

print(data)

corr()函数获取相关系数

获取指定列与其他列的相关系数

[外链图片转存中…(img-46g9qgQw-1637655972913)]

groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。

分组后获取指定列的汇总情况

获取多列的汇总情况

获取多列的情况