怎么设置python前面序号,python自定义排序规则

  怎么设置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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: