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
分类:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-04-23 Python学习笔记:列出目录下所有文件或目录