获取dataframe.corr的功能名称

时间:2019-01-04 01:54:43

标签: python-3.x pandas dataframe correlation

我正在使用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 :(得分:1)

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)
相关问题