Pandas 使用 Pandas .corr 得出两列之间的相关系数

Pandas 使用 Pandas .corr 得出两列之间的相关系数

在数据分析中,我们经常需要了解变量之间的相关程度。PandasPython 中一个非常强大的数据分析库,其中的 .corr() 方法可以方便地计算两个列之间的相关系数。

阅读更多:Pandas 教程

.corr() 方法的用法

Pandas 中的 .corr() 方法可以计算两个 DataFrame 中的列之间的相关系数。一般来说,我们使用它来计算数值型变量之间的相关性。

  • 语法:
DataFrame.corr(method='pearson', min_periods=1)
Python

其中,method 参数可取的值有三种:

  • Pearson 相关系数:用来衡量两个数值型变量之间的线性相关程度,取值范围在 -1 到 1 之间,其中 1 表示完全正相关,-1 表示完全负相关,0 则表示不相关。
  • Kendall Tau 相关系数:用来衡量两个变量之间的相关程度,无论变量类型是数值型还是分类型。取值范围在 -1 到 1 之间,符号表示相关方向。
  • Spearman 相关系数:用来衡量两个变量之间的相关程度,可以衡量任何单调函数关系。取值范围在 -1 到 1 之间,符号表示相关方向。

min_periods 参数指定在计算列之间相关系数时所需的最小非空观测数。如果设置为 1,则会忽略该列中的所有 NaN 值。

示例

接下来我们以一个数据集为例,看看如何使用 Pandas 中的 .corr() 方法计算两个变量之间的相关系数。

import pandas as pd

df = pd.read_csv('data.csv')
print(df.corr(method='pearson'))
Python

输出:

          price  bedrooms  bathrooms  sqft_living  floors  sqft_lot    ...      waterfront  view  condition  grade  sqft_above  sqft_basement  yr_built  yr_renovated  zipcode     lat    long  sqft_living15  sqft_lot15
price      1.00      0.31       0.51         0.70    0.26      0.06    ...            0.26  0.40      0.03   0.67        0.61           0.32      0.05          0.11    -0.05   0.31  -0.56           0.59       0.08
bedrooms   0.31      1.00       0.49         0.58    0.18      0.03    ...           -0.00  0.08      0.03   0.31        0.49           0.30      0.15          0.02    -0.15  -0.01   0.13           0.39       0.03
bathrooms  0.51      0.49       1.00         0.75    0.50      0.09    ...            0.06  0.19     -0.13   0.66        0.69           0.28      0.51          0.05    -0.20   0.03   0.22           0.57       0.09
sqft_living 0.70     0.58        0.75         1.00    0.35      0.17    ...            0.11  0.28     -0.06   0.75        0.88           0.43      0.32          0.05    -0.20   0.05   0.24           0.76       0.18
floors     0.26      0.18       0.50         0.35    1.00     -0.01    ...            0.02  0.03condition    -0.04       0.03      -0.13     -0.06   -0.26     0.02  ...        -0.02 -0.06       1.00  -0.15       -0.26         0.17     -0.36        -0.06    0.00 -0.01   0.10         -0.09      0.00
grade         0.67       0.31       0.66      0.75    0.46     0.11  ...         0.08  0.25      -0.15   1.00        0.76         0.17      0.45         0.01   -0.19  0.12   0.20          0.71      0.12
sqft_above    0.61       0.49       0.69      0.88    0.53     0.17  ...         0.07  0.17      -0.16   0.76        1.00        -0.05      0.42         0.02   -0.26  0.01   0.34          0.74      0.19
sqft_basement 0.32       0.30       0.28      0.43   -0.25     0.02  ...         0.08  0.27       0.17   0.17       -0.05         1.00     -0.15         0.07    0.07  0.11  -0.15          0.21      0.01
yr_built      0.05       0.15       0.51      0.32    0.49     0.05  ...        -0.03 -0.06      -0.36   0.45        0.42        -0.15      1.00        -0.22   -0.35 -0.15   0.40          0.33      0.07
yr_renovated  0.11       0.02       0.05      0.05   -0.00     0.01  ...         0.07  0.05      -0.06   0.01        0.02         0.07     -0.22         1.00    0.06  0.03  -0.06         -0.00      0.01
zipcode      -0.05      -0.15      -0.20     -0.20   -0.06    -0.13  ...         0.03  0.09       0.00  -0.19       -0.26         0.07     -0.35         0.06    1.00  0.26  -0.56         -0.28     -0.15
lat           0.31      -0.01       0.03      0.05    0.03     0.11  ...        -0.01 -0.10      -0.01   0.12        0.01         0.11     -0.15         0.03    0.26  1.00  -0.13          0.05     -0.09
long         -0.56       0.13       0.22      0.24    0.13     0.23  ...         0.07  0.08       0.10   0.20        0.34        -0.15      0.40        -0.06   -0.56 -0.13   1.00          0.34     -0.16
sqft_living15 0.59       0.39       0.57      0.76    0.28     0.18  ...         0.10  0.28      -0.09   0.71        0.74         0.21      0.33        -0.00   -0.28  0.05   0.34          1.00      0.18
sqft_lot15    0.08       0.03       0.09      0.18    0.02     0.72  ...         0.03  0.07       0.00   0.12        0.20         0.01      0.07         0.01   -0.15 -0.09  -0.16          0.18      1.00

[13 rows x 13 columns]
Python

输出结果是一个数据框,其中每个元素都是两个变量之间的 Pearson 相关系数。在这个数据集中,可以发现变量 price 和 sqft_living(房屋面积)之间的相关系数为 0.7,这表明这两个变量是正相关的。相反,变量 floors 和 yr_built 之间的相关系数只有 0.49,这表明这两个变量之间的关系不是特别紧密。

总结

在数据分析中,了解变量之间的相关系数是非常重要的。在 Python 的 Pandas 库中,我们可以方便地使用 .corr() 方法计算数值型变量之间的相关性。熟练使用该方法能够大大提高我们的数据分析效率。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册