Python-Kmeans-将质心添加为新列

问题描述 投票:0回答:1

假设我有以下数据框。如何创建包含质心的新列“ new_col”?我只能使用实验室创建列,而不能使用质心创建列。

这是我的代码。

from sklearn import preprocessing
from sklearn.cluster import KMeans

numbers = pd.DataFrame(list(range(1,1000)), columns = ['num'])

kmean_model = KMeans(n_clusters=5)
kmean_model.fit(numbers[['num']])

kmean_model.cluster_centers_
array([[699. ],
       [297. ],
       [497.5],
       [899.5],
       [ 99. ]])

numbers['new_col'] = kmean_model.predict(numbers[['num']])
python k-means centroid
1个回答
0
投票

很简单。只需使用.labels_,如下所示。

numbers['new_col'] = kmean_model.labels_

编辑。对不起,我的错。

制作字典,其键为标签,值为中心,并使用字典替换new_col。请参阅以下内容。

label_center_dict = {k:v for k, v in zip(kmean_model.labels_, kmean_model.cluster_centers_)}
numbers['new_col'] = kmean_model.labels_
numbers['new_col'].replace(label_center_dict, inplace = True)
© www.soinside.com 2019 - 2024. All rights reserved.