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

2022/4/24 1:12:49

本文主要是介绍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学习笔记:natsort实现自然排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程