Pandas 两个重要函数——corr()和corrwith()

Pandas 两个重要函数——corr()和corrwith()

在本文中,我们将介绍Pandas中的两个重要函数——corr()和corrwith(),并讨论它们的区别和应用情况。

阅读更多:Pandas 教程

corr()

Pandas中的corr()函数用于计算DataFrame中所有列之间的相关系数。该函数的语法如下:

DataFrame.corr(method='pearson', min_periods=1)
Python

其中,method参数用于指定计算相关系数的方法,可选的方法包括’pearson’、’kendall’和’spearman’,默认值为’pearson’。min_periods参数用于指定参与计算的数据点的最小个数。如果某一列的有效数据点数小于min_periods,则该列的所有相关系数为NaN。

以下是一个示例:

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
print(df.corr())
Python

输出结果为:

     A    B    C
A  1.0  1.0  1.0
B  1.0  1.0  1.0
C  1.0  1.0  1.0
Python

从以上结果可知,该DataFrame中的任意两列之间的相关系数均为1.0,即完全正相关。这是因为这个DataFrame是手动创建的数据集,其中每个元素都是彼此的倍数。

corrwith()

Pandas中的corrwith()函数用于计算DataFrame中的某一列与其他列之间的相关系数。该函数的语法如下:

DataFrame.corrwith(other, method='pearson', axis=0, drop=False)
Python

其中,other参数用于指定计算相关系数的列,method参数和min_periods参数与corr()函数完全一致。axis参数用于指定计算相关系数的方向,如果值为0,则计算每一列之间的相关系数;如果值为1,则计算每一行之间的相关系数。drop参数用于指定在计算相关系数时,是否将other列从DataFrame中删除。

以下是一个示例:

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
print(df.corrwith(df['A']))
Python

输出结果为:

A    1.000000
B    0.999706
C    0.999411
dtype: float64
Python

从以上结果可知,该DataFrame中每一列与列’A’之间的相关系数均为接近于1的数值。这是因为’A’列是其它列的倍数。

相关性分析

相关系数是衡量两个变量之间相关性强度的指标。如果两个变量完全正相关,则相关系数为1.0;如果两个变量完全负相关,则相关系数为-1.0;如果两个变量之间没有任何相关性,则相关系数为0。房产数据可以作为举例来解释两个变量之间的相关性。我们使用读取数据的函数read_csv()从文件中读取房产价格和面积数据。我们可以创建一个简单的Pandas DataFrame,以计算它们之间的相关系数。

以下是一个示例:

import pandas as pd

df = pd.read_csv('housing.csv')
print(df.corr())
Python

运行以上代码,我们可以得到两个变量之间的相关系数矩阵:

price rooms age area
price 1.000 0.524 nan 0.935
rooms 0.524 1.000 nan 0.818
age nan nan price | rooms | age | area
:—: :—: :—: :-: :–:
price 1.000 0.524 nan 0.935
rooms 0.524 1.000 nan 0.818
age nan nan 1.0 -0.276
area 0.935 0.818 -0.276 1.000

从相关系数矩阵可以看出,房价与房间数、房屋面积之间的相关系数均较高,分别为0.524和0.935。而房价与房龄之间的相关系数较弱,为NaN(因为我们在读取数据时未处理NaN值)。另外,房屋面积与房间数之间的相关系数也较高,为0.818。

总结

在Pandas中,corr()和corrwith()函数都可以用于计算DataFrame中变量之间的相关系数。不同之处在于,前者计算所有列之间的相关系数,后者计算某一列与其他列之间的相关系数。两者的应用场景略有不同,如果需要计算所有变量之间的相关系数,使用corr()函数更为方便;如果需要计算某一变量与其他变量之间的相关系数,使用corrwith()函数更为合适。在进行相关性分析时,相关系数矩阵可以让我们更直观地了解各变量之间的相关性强度,为特征选择、数据预处理以及建模提供参考。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册