python - 为什么对小数进行排序不起作用?
问题描述
看起来熊猫排序不再起作用:
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。
解决方案
问题是 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
推荐阅读
- git - 为多次提交修改 Git 消息时出现 Rebase 错误
- amazon-web-services - terraform 资源模块中的两个 for_each
- slurm - 使用 slurm 提交大量工作的最佳实践
- python - 我们可以在 python 中请求一个特定的 div
- javascript - splice 在 for 循环中没有按预期工作
- laravel - 搜索拼写错误的单词 (Laravel)
- python - FileNotFoundError: [Errno 2] No such file or directory instabot 错误
- python - 如何使用熊猫从现有列中的值创建新的二分列
- gcc - 为没有 root 权限的 nvcc 指定 GCC 版本
- flutter - 从 Firebase 中删除快照