假设我有一个10列的数据帧。
现在,我想快速计算每一列与其下一列之间的关系。
因此,第1列和第2列、第2列和第3列、第3列和第4列的pearson r,依此类推
有什么快速的方法让我这么做吗?
谢谢!
您可以使用pandas.DataFrame.corr
进行Pearson相关,使用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)
你会得到:
df:
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])