我想使用Kmeans通过值计数将数据框与准备好的数据集聚类。 然后我要画这个。
from sklearn.cluster import KMeans
frq = pd.DataFrame.from_dict(presult["ClientIP"].value_counts().to_dict(), orient="index").reset_index()
frq.columns = ['IP', 'Frq']
print(frq.columns)
print(frq)
Index(['IP', 'Frq'], dtype='object')
IP Frq
0 2X.1XX.X.X 1158
1 X:598:X:db8a:X:X:e9aa 408
2 18.X.X.109 405
3 217.X.X.28 394
4 92.X.X.119 360
.. ... ...
760 216.10.X.X 1
761 185.152.X.X 1
从准备好的数据集中,我可以调用:
kmeans_model = KMeans(n_clusters = 3, random_state = 1).fit(frq)
这不起作用,因为我的IP列是一个字符串。但是,我需要知道哪个IP进入哪个群集。
我将为每个IP添加一列,以查看它属于哪个群集:
frq['kmean'] = kmeans_model.labels_
print(frq['kmean'].value_counts())
有人会知道如何说服sklearn
基于数据帧中的值计数进行聚类吗?