怎么设置python前面序号,python自定义排序规则
本文主要介绍python是如何实现排序的,并用序号标注,有很好的参考价值,希望对你有帮助。如有错误或不足之处,请不吝赐教。
目录
python排序和标记序号(1)当方法= first (2)当方法= min (3)当方法= max (4)当方法= dense ,python常用排序算法总结排序的稳定性,内部排序和外部排序Python常用排序算法
python排序并标上序号
要求:用python实现排序功能。
测试数据:data.csv
id ,日期,金额
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
第一种常用排序:按照金额字段对上述数据进行排序。
进口熊猫作为pd
filename=data.csv
df=pd.read_csv(文件名)
#添加等级排序字段
df[等级]=df[金额]。rank(升序=0,方法=first )
注意:升序:1表示升序,0表示降序。
方法:该参数的作用是当两个值相同时的排序方式。可用值包括第一、最大、最小和密集。
(1)method =‘first’ 时
排序时,序号不会重复和连续。当遇到相同的值时,将按照数据顺序标记序号,如下图所示:
df[等级]=df[金额]。rank(升序=0,方法=first )
打印(df)
(2)method=min’时
排序时,遇到相同值时,后面的数的序号与第一个数的序号一致,如下图,843.86值重复两次,排名均为9,且排序中没有序号10(序号不连续)。
df[等级]=df[金额]。rank(升序=0,方法=min )
打印(df)
(3)method=max’时
排序时,遇到相同值时,后面的数字的序号与最后一个数字的序号一致,如下图,843.86值重复两次,排名均为10,且排序中没有序号9(序号不连续)。
df[等级]=df[金额]。rank(升序=0,方法=max )
打印(df)
(4)method=dense’时
排序时,遇到相同值时,重复值的序号一致,如下图,843.86值重复两次,排名均为9,且下一个数序号为10,序号保持连续.
df[等级]=df[金额]。rank(升序=0,方法=密集)
打印(df)
第二种常见排序:组内排序,根据id对上述数据进行分组,并根据金额字段在组内进行排序。
df[等级]=df[金额]。groupby(df[id])。rank(升序=0,方法=密集)
#按id和等级对结果进行升序排序
data=df.sort_values(by=[id , rank],ascending=(1,1))
Python常见排序算法汇总
排序是根据一个或一些关键字的大小,将一串记录按升序或降序排列的操作。排序算法就是如何按照要求排列记录。
排序的稳定性
经过某种排序后,如果两条记录的序号相同,且两条记录在原始无序记录中的顺序不变,则称所用的排序方法是稳定的,反之亦然。
内排序和外排序
内部排序:排序时,所有要排序的记录都存储在内存中;外部排序:在排序过程中,使用外部存储。通常,讨论的是内部排序。
影响内排序算法性能的三个因素:
时间复杂度:即时间性能。有效的排序算法应该具有尽可能少的关键字比较和记录的移动。空间复杂度:主要是执行算法需要的辅助空间。越少越好。算法的复杂度。主要是指代码的复杂度。
Python常用排序算法
以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。