鉴于我的大熊猫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
谢谢!
答案 0 :(得分:1)
您可以像这样创建所需的数据框
df_res = pd.DataFrame([{'VAR': x, 'CLUSTER': y} for (x,y) in zip(df.columns, C)])