python多列排序

  python的sort()和sorted()函数可以进行多列排序。在一个文本或者列表有多列时,这是一个很好用的技巧。

  首先,看一下待排序的数据

  这是一个csv文件,它有6列,我们需要首先对第一列排序,再对第六列排序

  46896961,192100485,1,95wf5sm,1863,2014-12-18 15
  39716997,265509650,1,94k0ped,6058,2014-11-18 19
  40907060,362837862,1,,12819,2014-12-08 04
  118420067,331756810,1,,6054,2014-12-13 19
  18261127,268564109,1,,2771,2014-12-17 19
  17042777,72469526,1,,1863,2014-12-11 23
  104414180,141928375,1,,1863,2014-12-09 19
  28375714,258478694,1,,8095,2014-12-06 14
  132940744,46626071,1,9752qdo,4230,2014-11-27 21
  46896961,10879448,1,95wf59q,11279,2014-12-11 23

  把数据读到列表里面,列表调用sort()函数进行排序,sort()函数多列排序的格式为 list.sort(key = lambda x:(第一列,第六列)),因为读到列表里面的字符串有换行符,可以对第六列进行切片操作。由于第六列是规范的日期格式,所以自己用字符串比较大小是可行的。如果日期不是规格化的,可以把年月日取出,转为int型比较大小。

  代码实现为:

  reader_list.sort(key = lambda x: (x.split(‘,‘)[0], x.split(‘,‘)[5][-14:-1]))

  

时间: 2024-09-28 20:44:31

python多列排序的相关文章

分别使用shell和python实现两列排序

有一个文件1.txt如下,要求使用shell和python实现排序,先按照第一列排序,第一列相同再按照第二列排序,并且输出到另外一个文件2.txt LZdeMacBook-Pro:~ lz$ cat 1.txt 23 d 26 t 12 y 43 h 5 k 12 a shell实现: LZdeMacBook-Pro:~ lz$ sort  -k1,1n -k2,2 1.txt > 2.txt LZdeMacBook-Pro:~ lz$ cat 2.txt 5 k 12 a 12 y 23 d

python几个排序函数 sort sorted argsort

Python中排序常用到的sort .sorted和argsort函数 [摘要:Python中sort 战 sorted函数 一 .先容 sort函数是list列表中的函数,而 sorted能够对list或iterator举行排序 2.sort战sorted的比拟 1.用sort函数对列表排序时会影响列表自身,而sorted没有会 举例] Python中sort 和 sorted函数    一.介绍 sort函数是list列表中的函数,而sorted可以对list或者iterator进行排序 二

三重for循环实现对二维数组的按列排序(JavaScript)

由C语言联想到的:三重for循环实现对二维数组的按列排序. 自己写的,水平有限,可能存在错误,忘指正~ function circle() { var a = [ [1, 4, 3, 2], [8, 6, 5, 7], [3, 7, 2, 5], [4, 8, 6, 1] ], t = 0, i, j, k; for(i = 0;i < 4;i++) { for(j = 0;j < 3;j++) { for(k = j + 1;k < 4;k++) { if(a[j][i] > a

Python实现各种排序算法的代码示例总结

Python实现各种排序算法的代码示例总结 作者:Donald Knuth 字体:[增加 减小] 类型:转载 时间:2015-12-11我要评论 这篇文章主要介绍了Python实现各种排序算法的代码示例总结,其实Python是非常好的算法入门学习时的配套高级语言,需要的朋友可以参考下 在Python实践中,我们往往遇到排序问题,比如在对搜索结果打分的排序(没有排序就没有Google等搜索引擎的存在),当然,这样的例子数不胜数.<数据结构>也会花大量篇幅讲解排序.之前一段时间,由于需要,我复习了

datagridview 日期列排序

1.datagridview 日期列排序 private void Form1_Load(object sender, EventArgs e) { //方法1 dataGridView1.ColumnHeaderMouseClick += tempView_ColumnHeaderMouseClick; DataTable dt = Create(); dataGridView1.DataSource = dt; //方法2 dataGridView2.SortCompare += dataG

C语言之基本算法42—矩阵转置及按行按列排序

//矩阵转置 按行按列排序 /* ================================================================== 题目:输入m*n矩阵,按行升序排列输出. 输入: 4 3 5 6 2 9 8 1 2 8 7 1 2 3 8 输出: 2 3 4 5 6 1 2 8 8 9 1 2 3 7 8 ================================================================== */ #includ

二维数组的列排序

给出一个二维数组,请将这个二维数组按第i列(i从1开始)排序,如果第i列相同,则对相同的行按第i+1列的元素排序,如果第i+1列的元素也相同,则继续比较第i+2列,以此类推,直到最后一列.如果第i列到最后一列都相同,则按原序排列. 实现以下接口: 输入一个m*n 的整数数组,实现按规则排列,返回排列后的数组. 调用者会保证: 比如输入数组为: 1,2,3 2,3,4 2,3,1 1,3,1 按第二列排序: 输出: 1,2,3 2,3,1 1,3,1 2,3,4 分析:从最后一列开始使用稳定的排序

Python学习——数据排序方法

Python对数据排序又两种方法: 1. 原地排序:采用sort()方法,按照指定的顺序排列数据后用排序后的数据替换原来的数据(原来的顺序丢失),如: >>> data1=[4,2,6,432,78,43,22,896,42,677,12] >>> data1.sort() >>> data1 #原来的顺序被替换 [2, 4, 6, 12, 22, 42, 43, 78, 432, 677, 896] 2. 复制排序:采用sorted()内置函数,按照

ExtJS4.2 Grid知识点七:显示行号、斑马线效果(奇偶行背景色不一致)、复制单元格文字、禁止点击列排序

本节主要学习ExtJS4.2 Grid显示行号.斑马线效果(奇偶行背景色不一致).复制单元格文字.禁止点击列排序.禁止列头部右侧菜单,示例图片: 在线演示  /  在线演示 主要内容如下: 显示行号 斑马线效果(奇偶行背景颜色不一致) 复制单元格问题 禁止点击列排序 禁止列头部右侧菜单 1.显示行号 在Grid中增加行号列,xtype指定为rownumberer. {header: 'NO',xtype: 'rownumberer',width: 40,sortable: false} 2.斑马