大家好,我是 👉【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编程技巧推送,希望大家可以喜欢。