Корреляция Пирсона между соседними столбцами в DataFrame

скажем, у меня есть фрейм данных из 10 столбцов.

теперь я хочу быстро рассчитать отношение между каждым столбцом и следующим за ним столбцом.

поэтому pearson r столбцов 1 и 2, столбцов 2 и 3, столбцов 3 и 4 и так далее.

есть ли быстрый способ сделать это?

спасибо!


person Rutger Bos    schedule 15.04.2020    source источник
comment
pandas.pydata.org/pandas-docs/ стабильный/ссылка/API/   -  person Arne    schedule 15.04.2020


Ответы (1)


Вы можете использовать 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

коррекция:

        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])
person sentence    schedule 16.04.2020