Получить имена функций для dataframe.corr - PullRequest
0 голосов
/ 04 января 2019

Я использую набор данных о раке из sklearn, и мне нужно найти корреляции между функциями.Я могу найти коррелированные столбцы, но я не могу представить их «хорошим» способом, чтобы они были входными данными для Dataframe.drop.Вот мой код:

cancer_data = load_breast_cancer()
df=pd.DataFrame(cancer_data.data, columns=cancer_data.feature_names)
corr = df.corr()
#filter to find correlations above 0.6
corr_triu = corr.where(~pd.np.tril(pd.np.ones(corr.shape)).astype(pd.np.bool))
corr_triu = corr_triu.stack()
corr_result = corr_triu[corr_triu > 0.6]
print(corr_result)
df.drop(columns=[?])

1 Ответ

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

IIUC, вам нужны столбцы, которые коррелируют с некоторыми другими столбцами в наборе данных, то есть отбрасывают столбцы, которые не отображаются в corr_result.Таким образом, вы хотите получить уникальные переменные из индекса corr_result, с каждого уровня.Могут быть повторы, поэтому позаботьтесь об этом, например, с наборами:

corr_result.index = corr_result.index.remove_unused_levels()
corr_vars = set()
corr_vars.update(corr_result.index.unique(level=0))
corr_vars.update(corr_result.index.unique(level=1))
all_vars = set(df.columns)
df.drop(columns=all_vars - corr_vars)
...