Python学习笔记:natsort实现自然排序

一、介绍

自然排序顺序(Natural sort order)不同于默认排序,针对字符串逐个比较对应位置字符的 ASCII 码方式,更关注字符串实际相对大小意义的排序。

例如:需要根据年增长率(50%)对数据列进行排序,此时无法直接排序。

可以借助第三方库(natsort)进行排序。

二、natsort库

1.安装

pip install natsort
'''
Collecting natsort
  Downloading natsort-8.1.0-py3-none-
Installing collected packages: natsor
Successfully installed natsort-8.1.0
'''

2.排序

import pandas as pd
import numpy as np
import natsort

# 构建测试集
df = pd.DataFrame({
        "Name": ['A', 'B', 'C'],
        "Rate": ['5%', '15%', '10%']
        })

# 默认排序
df.sort_values(by='Rate')
'''
  Name Rate
2    C  10%
1    B  15%
0    A   5%
'''
# 并非我们所要~

# 自然排序
natsort.index_natsorted(df['Rate']) # 自然顺序排序
np.argsort(natsort.index_natsorted(df['Rate']))

# 最终结果
df.sort_values('Rate', key=lambda x: np.argsort(natsort.index_natsorted(x)))
'''
  Name Rate
0    A   5%
2    C  10%
1    B  15%
'''

参考链接:pandas中鲜为人知的隐藏排序技巧

参考链接:natsort

posted @   Hider1214  阅读(830)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2021-04-23 Python学习笔记:列出目录下所有文件或目录
点击右上角即可分享
微信分享提示