Pandas 百分比数据排序(自然排序natsort)

大家好,我是 👉【Python当打之年】

要求:按百分比大小排列数据

🏳️‍🌈 1. 示例数据

datas = ['28.65%', '35.11%', '12.03%', '35.7%', '57.15%', '64.16%', '92.09%', '91.71%', '62.11%', '9.4%', '86.15%', '50.1%', '28.23%', '29.37%', '50.45%']
df = pd.DataFrame(data=datas,columns=['val'])

在这里插入图片描述

🏳️‍🌈 2. 常规排序(sort_values)

pandas 中的 sort_values 排序:

df.sort_values('val')

在这里插入图片描述
并不能达到想要的效果,因为默认排序是对字符串逐个比较对应位置字符的ASCII码。

🏳️‍🌈 3. 自然排序(natsort )

from natsort import index_natsorted
df.sort_values('val',key=lambda val:np.argsort(index_natsorted(val)))

在这里插入图片描述

🏳️‍🌈 4. 更多示例

>>> a = ['2 ft 7 in', '1 ft 5 in', '10 ft 2 in', '2 ft 11 in', '7 ft 6 in']
>>> natsorted(a)
['1 ft 5 in', '2 ft 7 in', '2 ft 11 in', '7 ft 6 in', '10 ft 2 in']
>>> a = ['version-1.9', 'version-2.0', 'version-1.11', 'version-1.10']
>>> natsorted(a)
['version-1.9', 'version-1.10', 'version-1.11', 'version-2.0']
>>> a = ['Apple', 'apple15', 'Banana', 'apple14,689', 'banana']
>>> natsorted(a, alg=ns.REAL | ns.LOCALE | ns.IGNORECASE)
['Apple', 'apple15', 'apple14,689', 'Banana', 'banana']

以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享注明出处)让更多人知道。

微信公众号 Python当打之年,Python编程技巧推送,希望大家可以喜欢。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python当打之年

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值