首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:将熊猫系列转换为数组并保留索引

Python:将熊猫系列转换为数组并保留索引
EN

Stack Overflow用户
提问于 2020-11-18 11:24:51
回答 2查看 367关注 0票数 2

我正在运行k均值算法(k=5)来对数据进行聚类.为了检查算法的稳定性,我首先在整个数据集上运行该算法一次,然后在2/3的数据集上运行该算法多次(使用不同的随机状态进行拆分)。我使用这些结果来预测剩下的1/3数据的聚类。最后,我希望将预测的集群与我在整个数据集上运行k均值时得到的集群进行比较。这就是我被困的地方。

因为k-的意思是总是给(或多或少)相同的集群分配不同的标签,所以我不能仅仅比较它们。我尝试使用.value_counts()根据标签的频率将标签重新分配到0到4。但是因为我多次运行这个检查,所以我需要在循环中工作的东西。

基本上,当我使用.value_counts()时,我得到了这样的信息:

代码语言:javascript
复制
     PredictedCluster  
4              55555  
0              44444
2              33333
1              22222
3              11111

我希望我能把它转换成一个数组,在这个数组中标签是按大小排序的:

代码语言:javascript
复制
a = [[4, 55555],[0,44444],...,[3,11111]]

有人能告诉我怎么做吗?或者我能用什么其他方法来解决我的问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-18 11:33:28

下面的一条线可能会起作用:

代码语言:javascript
复制
a = list(map(list, df["PredictedCluster"].value_counts().items()))
票数 1
EN

Stack Overflow用户

发布于 2020-11-18 12:51:14

一种选择是使用:

代码语言:javascript
复制
(df['PredictedCluster'].value_counts(ascending=False)
                       .reset_index()
                       .to_numpy())

这将计数值,按这些计数排序(降序),然后将结果转换为numpy.ndarray

如果您希望列表中的结果,只需将.tolist()追加到语句的末尾即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64892135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档