Python如何实现排序功能,怎样做添加序号
Admin 2022-08-11 群英技术资讯 541 次浏览
需求:利用python实现排序功能
测试数据:data.csv
"id","date","amount" "1","2019-02-08","6214.23" "1","2019-02-08","6247.32" "1","2019-02-09","85.63" "2","2019-02-14","943.18" "2","2019-02-15","369.76" "2","2019-02-18","795.15" "2","2019-02-19","715.65" "2","2019-02-21","537.71" "2","2019-02-24","1037.71" "3","2019-02-09","967.36" "3","2019-02-10","85.69" "3","2019-02-12","769.85" "3","2019-02-13","943.86" "3","2019-02-19","843.86" "3","2019-02-11","85.69" "3","2019-02-14","843.86" "1","2019-02-10","985.63" "1","2019-02-09","285.63" "1","2019-02-11","1285.63"
第一种常见排序: 将上面数据按照amount字段进行排序
import pandas as pd filename="data.csv" df=pd.read_csv(filename) #增加一个rank排序字段 df['rank']=df['amount'].rank(ascending=0, method='first')
说明:ascending :1 表示升序,0表示降序
method:此参数的作用是,当遇到两个值相同时,排序处理的方式。可以取的值有 first、max、min、dense
表示排序时,序号不会重复且是连续的,遇到相同的值时,会按照数据的先后顺序标序号,如下图:
df['rank']=df['amount'].rank(ascending=0, method='first') print(df)
表示排序时,遇到相同的值时,后面数的序号与最先出现的数的序号保持一致,如下图,843.86值重复两次,排名均为9,且排序中没有序号10(序号不连续)
df['rank']=df['amount'].rank(ascending=0, method='min') print(df)
表示排序时,遇到相同的值时,后面数的序号与最后出现的数的序号保持一致,如下图,843.86值重复两次,排名均为10,且排序中没有序号9(序号不连续)
df['rank']=df['amount'].rank(ascending=0, method='max') print(df)
表示排序时,遇到相同的值时,重复值序号保持一致,如下图,843.86值重复两次,排名均为9,且下一个数序号为10,序号保持连续
df['rank']=df['amount'].rank(ascending=0, method='dense') print(df)
第二种常见排序:组内排序 ,将上面数据根据id分组,并按照amount字段进行组内排序
df['rank']=df['amount'].groupby(df['id']).rank(ascending=0, method='dense') #对结果按照id和rank进行升序排列 data=df.sort_values(by=['id','rank'],ascending=(1,1))
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。
经过某种排序后,如果两个记录序号同等,且两者在原无序记录中的先后秩序依然保持不变,则称所使用的排序方法是稳定的,反之是不稳定的。
通常讨论的都是内排序。
影响内排序算法性能的三个因素:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了使用python实现UDP通信方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要给大家分享3个超有用的 Python 编程小技巧,文章都是一些再编程中很有用的小技巧,具有一定的参考价值,需要的朋友可以参考一下,希望对你有所帮助
很多新手学习python时,对于类的继承链理解比较困难,对此这篇文章就给大家分享python中类的继承链的内容。小编觉得挺实用的,大家可以参考参考,接下来一起跟随小编看看吧。
NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵。但其实NumPy还可以绘制图画,本文将为大家介绍如何通过NumPy绘制彩色图画,感兴趣的小伙伴可以了解一下
轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同 的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008