存储聚类结果

时间:2019-05-26 07:32:42

标签: python pandas scipy

鉴于我的大熊猫df,我正在如下进行相关矩阵的层次聚类:

import scipy.cluster.hierarchy as sch

X = df.corr().values
d = sch.distance.pdist(X) 
L = sch.linkage(d, method='complete')
C = sch.fcluster(L, 0.5*d.max(), 'distance')

我需要帮助来执行以下简单任务。我想要一个新的df_res,其中有两列:(1)变量的名称,由我的原始df的列给出,(2)根据结果归因于它所属的群集C。像这样:

VAR     CLUSTER
var_1   1
var_2   2
var_3   1
var_4   1
var_5   2

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以像这样创建所需的数据框

df_res = pd.DataFrame([{'VAR': x, 'CLUSTER': y} for (x,y) in zip(df.columns, C)])