如何从K-means聚类生成的4个簇中分别提取数据?
从K-means聚类的每个簇中提取数据的方法
你已经成功完成K-means聚类并给数据集添加了clusterNo列,接下来提取每个簇的数据其实很简单,这里给你两种实用的方法:
方法1:批量获取所有簇的数据(适合批量分析)
如果想一次性整理好所有簇的数据,方便后续统一处理,可以用pandas的groupby方法把每个簇的数据存入字典,后续通过簇编号就能快速调用:
# 按clusterNo分组,将每个簇的数据存入字典 cluster_dict = {} for cluster_id, group_data in df_new.groupby('clusterNo'): cluster_dict[cluster_id] = group_data print(f"已提取簇 {cluster_id},共包含 {len(group_data)} 条数据") # 调用示例:获取簇0的数据集 cluster_0_data = cluster_dict[0] # 查看簇0的前5条数据 print(cluster_0_data.head())
方法2:单独筛选单个簇的数据(适合针对性分析)
如果只需要分析某一个特定簇,直接用布尔索引筛选即可,操作更直接:
# 获取簇0的数据 cluster_0 = df_new[df_new['clusterNo'] == 0] # 获取簇1的数据 cluster_1 = df_new[df_new['clusterNo'] == 1] # 同理提取簇2和簇3 cluster_2 = df_new[df_new['clusterNo'] == 2] cluster_3 = df_new[df_new['clusterNo'] == 3]
额外小技巧:快速查看簇的统计特征
如果想快速了解每个簇的数值特征分布,可以直接在groupby后调用describe():
# 输出所有簇的统计摘要(均值、中位数、标准差等) cluster_statistics = df_new.groupby('clusterNo').describe() print(cluster_statistics)
这样你就能根据自己的分析需求,灵活提取和查看每个簇的数据啦!
内容的提问来源于stack exchange,提问作者emrata
相关产品推荐
相关产品推荐

