首页 > 解决方案 > 为什么对小数进行排序不起作用?

问题描述

看起来熊猫排序不再起作用:

import pandas as pd
from numpy import random
sample = random.uniform(low=0.0, high=1.0, size=(100,))
ranking = pd.DataFrame(sample, columns=['random']).sort_values(by='random', ascending='False')
print(ranking.head())

      random
18  0.024665
71  0.028709
51  0.037635
48  0.038073
57  0.072323

相反,我会期望相反的顺序,因为ascending=False.

我正在使用熊猫 0.25.0。

标签: pythonpandas

解决方案


问题是 if'False'不是布尔值,而是 string 它是评估 like True,所以删除''

print(bool('False'))
True

ranking = pd.DataFrame(sample, columns=['random']).sort_values(by='random', ascending=False)
print(ranking.head())
      random
44  0.997583
18  0.982477
19  0.979080
16  0.968516
15  0.962161

推荐阅读