Создание списка из корреляционной матрицы в пандах - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь создать список (3 из самых высоких коррелированных выборов) из корреляционной матрицы. Допустим, у меня есть следующая матрица:

     A     B     C     D     E
A  1.00  0.15  0.57  0.11  0.98
B  0.59  1.00  0.32  0.24  0.54
C  0.96  0.65  1.00  0.22  0.67
D  0.72  0.33  0.78  1.00  0.92
E  0.88  0.94  0.61  0.48  1.00

Итак, допустим, я затем отсортировал матрицу, чтобы получить наиболее коррелированную информацию в соответствии со столбцом B, теперь матрица будет выглядеть так:

     A     B     C     D     E
B  0.59  1.00  0.32  0.24  0.54
E  0.88  0.94  0.61  0.48  1.00
C  0.96  0.65  1.00  0.22  0.67
D  0.72  0.33  0.78  1.00  0.92
A  1.00  0.15  0.57  0.11  0.98

Как вы можете видеть, матрица была отсортирована, чтобы показать мне наиболее коррелированные аналоги столбца B. Затем я хотел бы иметь возможность возвращать 3 верхние коррелированные буквы в форме списка, не пропуская верхнюю строку (B), поскольку это, очевидно, коррелирует 1: 1.

Так что я хотел бы, например, top_correlated = ['E', 'C', 'D'], или я хочу, чтобы мой список был таким, какой я имею в виду.

Как и во всех моих сообщениях, я знаю, что этикет должен, по крайней мере, пытаться показать некоторые усилия в отношении кода, но, как обычно, я полностью озадачен, поэтому я и публикую здесь. Любая помощь с благодарностью.

1 Ответ

0 голосов
/ 16 января 2019

Вместо сортировки всего DataFrame вы можете вызвать nlargest для вашего столбца, получить индекс и вырезать из первого элемента, поскольку он всегда должен быть сам по себе.

col = 'B'
df[col].nlargest(4).index[1:].tolist()

['E', 'C', 'D']
...