首页 > 解决方案 > DataFrame中相邻列之间的皮尔逊相关性

问题描述

假设我有一个 10 列的数据框。

现在我想快速计算每一列与其以下列之间的关系。

所以第 1 列和第 2 列、第 2 列和第 3 列、第 3 列和第 4 列的 pearson r 等等。

我有什么快速的方法吗?

谢谢你!

标签: pythonpython-3.xpandasdataframepearson-correlation

解决方案


您可以使用pandas.DataFrame.corrPearson 相关性并numpy.diag提取感兴趣的值。让我向您展示一个包含 5 列的玩具示例(为简单起见):

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0,10,(3,5)))

pcorr = df.corr()
np.diag(pcorr, 1)

你得到:

东风:

    0   1   2   3   4
0   7   9   0   0   9
1   9   2   9   9   0
2   2   8   5   9   2

pcorr:

        0            1          2            3          4
0   1.000000    -0.622693   0.215274    -0.240192   0.029344
1   -0.622693   1.000000    -0.898170   -0.609994   0.763857
2   0.215274    -0.898170   1.000000    0.896258    -0.969816
3   -0.240192   -0.609994   0.896258    1.000000    -0.977356
4   0.029344    0.763857    -0.969816   -0.977356   1.000000

您感兴趣的价值观:

array([-0.62269252, -0.89817029,  0.89625816, -0.97735555])

推荐阅读