Как отфильтровать столбцы данных по значениям корреляции? - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь отфильтровать столбцы данных по их значениям корреляции.

У меня есть два кадра данных, d1 и d2. У df2 есть несколько столбцов, и я хочу выбрать только те, для которых указано значение корреляции с df1.

Я написал функцию для запуска корреляций между фреймами данных df1 и df2

threshold = 0.8
filter = df2.apply(lambda x: df1.corrwith(x)) > threshold

Затем я попытался использовать фильтр для выбора столбцов в df2

df2[df2[filter]==True]

Это не сработало, все, что я получил, это весь df2, заполненный значениями NaN, а не только столбцы со значениями корреляции выше 0,8.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Вы можете попробовать это:

corr = pd.Series(df2.corrwith(df1) > threshold)  #assuming df1 has only one column

df2[corr[corr == True].index]   #This will get you required columns
0 голосов
/ 04 апреля 2019

Это, вероятно, работает, при условии, что ваш df1 является фреймом данных с одним столбцом.Кредиты идут на @ Вэнь-Бен.

df2.loc[:, [x for x in filter.iloc[0]]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...