pandas value_count() 每次重新启动笔记本时都显示不同的值

pandas value_count() is showing different values every time I restart the notebook

每次我重新启动 jupyter-lab 笔记本时,value_count() 都会显示不同的值。

bid = customers['BasketID']
bid.value_counts()

这是两次执行的结果:

576339     542
573585     535
579196     533
580727     529
578270     442
          ... 
563453       1
C567706      1
548001       1
C546895      1
574519       1
Name: BasketID, Length: 24627, dtype: int64



576339     542
573585     535
579196     533
580727     529
578270     442
          ... 
C562808      1
575205       1
549004       1
C542991      1
565577       1
Name: BasketID, Length: 24627, dtype: int64

如您所见,总是有不同的数字以字母开头。

由于在笔记本中我必须引用这些数字之一,所以我不能让它在每次迭代时都改变。

有没有办法使方法的输出具有确定性?

我猜想这种奇怪的行为是由于该方法使用的排序算法造成的。也许有办法 see/set 算法使用的随机数生成器的种子?

value_counts 默认情况下有 sort=True,这很可能使用快速排序进行排序。您可以尝试使用 sort=False 禁用它,其中 returns 具有排序索引的系列:

bid.value_counts(sort=False)

如果您仍然想要排序的系列,您可以使用 sort_values 手动排序并使用稳定的 mergesort 方法:

bid.value_counts(sort=False).sort_values(ascending=False, kind='mergesort')