我有一个df,在此数据上,我建立了一些聚类模型,并找到了标签,即以数组形式获取的标签,现在我需要合并数据和标签
data = [['M', 10, 'red','apple'],
['F', 15, 'blue','orange'],
['M', 14, 'blue','apple'],
['M', 14, 'blue','apple'],
['F', 14, 'blue','apple'],
['M', 14, 'red',''],
['M', 14, 'blue','banana'],
['', 14, 'blue','apple']]
df = pd.DataFrame(data, columns = ['Gender', 'Age', 'Color','Fruit'])
df被编码为数字,然后标签被获取为
df_encode = OneHotEncoder(df)
kmeans = KMeans(n_clusters= 2)
kmeans.fit(df_encode.values)
labels = kmeans.labels_
type(labels)
Out[120]: numpy.ndarray
labels
Out[122]: array([1, 0, 1, 0, 1, 1, 0, 0])
我对它们的看法如下
for i in range(len(df_encode)):
print("coordinate:",df_encode.iloc[i], "label:", labels[i])
这给出了类似的输出
coordinate:
Gender 1.0
Age 10.0
Color 0.0
Fruit 1.0
label: 0
在这里我应该如何将标签合并为df_encode数据框中的一列?
答案 0 :(得分:1)
将其转到列表并将其附加到数据框:
kmf2labels = labels.tolist()
df_encode['labels'] = kmf2labels
输出:
df_encode['labels']
Out[39]:
0 1
1 0
2 0
3 0
4 0
5 0
6 0
7 0
Name: labels, dtype: int64