【发布时间】:2019-01-26 18:16:39
【问题描述】:
当我运行下面的代码时:
s = pandas.Series(['c', 'a', 'b', 'a', 'b'])
print(s.value_counts())
有时我会明白:
a 2
b 2
c 1
dtype: int64
有时我会得到这个:
b 2
a 2
c 1
dtype: int64
例如等效计数返回的索引顺序不同。如果 Series 值是整数而不是字符串,我无法重现这一点。
为什么会发生这种情况,每次获得相同索引顺序的最有效方法是什么?
我希望它仍然按计数降序排序,但在等效计数项目的顺序上保持一致。
我正在运行 Python 3.7.0 和 pandas 0.23.4
【问题讨论】:
-
你得到的值是按照计数排序的。在您的情况下,a 和 b 具有相同的频率,因此,您获得的输出可能会根据 CPU 分配而有所不同。
-
查看相关问题here。
-
@user2285236,谢谢,订单更改的地方已明确指出:“订单已从 pandas/hashtable.pyx.build_count_table_object() 更改。调整 pymap 的大小通过散列值移动条目。 "
标签: python pandas sorting numpy counter