繁体   English   中英

如何在随机化关系顺序的同时对 pandas 系列的值进行排序?

[英]How to sort a pandas Series on values while randomizing the order of ties?

我正在使用 sort_values() 从最大到最小对 pandas 系列中的值进行排序。 我想知道是否有一种简单的方法可以随机化领带的顺序(?)。 在这种情况下,关系的索引似乎按照作为参数给出的降序排列:

s = pd.Series([3.0, 15.0, 1.0, 22.0, 11.0, 12.0, 2.0, 5.0, 3.0, 12.0, 2.0, 3.0])
s.sort_values(ascending=False)

出去:

3     22.0
1     15.0
9     12.0
5     12.0
4     11.0
7      5.0
11     3.0
8      3.0
0      3.0
10     2.0
6      2.0
2      1.0

我已经阅读了可以作为参数给出不同种类的排序的文档:'quicksort'、'mergesort'、'heapsort'。 但是,据我了解,他们都不会随机化领带的顺序。

我想我可以编写一个自定义的 function,但很想知道是否存在某些东西。

您可以先随机抽取 100% sample ,然后对其进行排序:

s.sample(frac=1).sort_values(ascending=False)

您还可以根据需要传递random_state参数来启动随机数生成器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM