python数据排序
❶ python中对组合数据类型x进行排序的内置函数是
python有两个内置的函数用于实现排序,一个是list.sort()函数,一个是sorted()函数。
区别1:list.sort()函数只能处理list类型数据的排序;sorted()则可以处理多种类型数据的排序。
区别2:list.sort()会修改原来的list为排序后的结果;sorted()不会修改原来的数据,只是返回一个排序后的对象。
下面来动手写点代码进行测试:
list进行简单的排序
1 >>>a=['a','f','c','x','e']2 >>>a.sort()3 >>>a4 [a','c','e','f','x']
sorted()进行简单排序
1 >>>a=['a','f','c','x','e']2 >>>a_new=sorted(a)3 >>>a_new4 ['a', 'c', 'e', 'f', 'x']
list.sort()和sorted都有默认的参数reverse,该参数的默认值为“False”,即默认升序排列。如果要进行降序排列:
1 >>>a=['a','f','c','x','e']2 >>>a_new=sorted(a,reverse=True)3 >>>a_new4 ['x', 'f', 'e', 'c', 'a']
对元组进行排列,不能使用list.sort()函数:
1 >>>a=('a','f','c','x','e')2 >>>a_new=a.sort()3
4 ttributeError: 'tuple' object has no attribute 'sort'
对字典的排序可以按照字典的key或者value进行排序:
1 >>>dic={"aa":11,"ff":5,"ee":22}2 >>>printsorted(dic.keys())3 ['aa', 'ee', 'ff']
从python2.4开始list.sort()和sorted()都引入了key参数来指定一个函数进行排序,有了key参数以后我们就可以对更加复杂的数据进行排序 。
假如需要排序的数据为一个list,但list的每一个元素都是一个字典,排序的方法如下:
>>>dic=[{"name":"sunny","age":20},
{"name":"bell","age":5},
{"name":"jim","age":1},
{"name":"jan","age":10}]>>>print sorted(dic,key=lambda arg:arg.get('age'),reverse=False) #按照每个字典的age的值进行排序,字典的方法dict.get(key)将返回指定键的值。
#输出结果为:[{'age': 1, 'name': 'jim'}, {'age': 5, 'name': 'bell'}, {'age': 10, 'name': 'jan'}, {'age': 20, 'name': 'sunny'}]
>>>print sorted(dic,key=lambda arg:arg.get('name'),reverse=False) #按照每个字典的name的值进行排序
#输出结果为:[{'age': 5, 'name': 'bell'}, {'age': 10, 'name': 'jan'}, {'age': 1, 'name': 'jim'}, {'age': 20, 'name': 'sunny'}]
假如需要排序的数据为一个二维的list,即list的每一个元素也是一个list,方法与上面的例子类似:
>>>a=[['100','8','30'],['200','5','50'],['300','1','20']]>>>print sorted(a,key=lambda arg:arg[1]) #按照每个list的第1个元素进行排序
[['300', '1', '20'], ['200', '5', '50'], ['100', '8', '30']]
前面的2个例子中,key参数的值都是函数。在sorted函数中,key参数后面的函数的参数的数量只能是一个。lambda arg:arg.get('age')是一个lambda匿名函数,它是一个没有函数名的单语句函数。冒号左边是参数,冒号右边的返回值,返回值将被用于排序。
❷ python数据同时排序
Python列表具有内置的 list.sort()方法,可以在原地修改列表。 还有一个 sorted()内置的函数从迭代构建一个新的排序列表。在本文中,我们将探讨使用Python排序数据的各种技术。
请注意,sort()原始数据被破坏,sorted()没有对原始数据进行操作,而是新建了一个新数据。
一、基本的排序
最基本的排序很简单。只要使用sorted()函数即可返回一个 新的排序的列表
>>>sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]
咱们也可以使用 list.sort()方法。该方法是对列表list进行的原地操作(原数据被修改,已经不是原来的本来面目)。一般情况下,不如使用 sorted()方便,但是如果你不需要原列表list,使用 sort()会更具效率。
>>>a = [5, 2, 3, 1, 4]
>>>a.sort()
>>>a #a发生改变
[1, 2, 3, 4, 5]
另一个不同点, list.sort()方法只能应用于列表对象数据。而 sorted()却可以对任何可迭代对象进行排序。也就是说sorted()更具有普遍使用性。这里大灯建议初学者使用sorted()。
二、Key参数函数
list.sort()和 sorted()都有key参数,可以指定函数来对元素进行排序。
例如,这里我们使用一个字符串(字符串也是可迭代对象)
>>>sorted("This is a test string from Andrew".split(), key=str.lower)
❸ python中pandas使用技巧之——【2】排序sort_index、sort_values、rank方法
在Python的数据分析工具pandas中,掌握排序技巧能大幅提高工作效率。本文将深入解析sort_index、sort_values和rank这三个常用方法,旨在帮助你在数据处理中游刃有余。首先,我们来看一下这三个方法的基本介绍:
1. sort_index():这个函数根据数据的索引进行排序,它的核心参数包括但不限于index的排序依据。
2. sort_values():顾名思义,它是根据DataFrame中的数据值进行排序,提供了丰富的参数选项,如指定排序列、排序方式(升序或降序)等。
3. rank():这个方法返回排序后的序号,支持多种排名规则,如平均值(average)、最大值(max)、最小值(min)、按出现顺序(first,类似SQL的row_number)以及密集排名(dense,类似SQL的dense_rank),仅适用于数值型数据。
接下来,我们将通过实例演示如何在实践中使用这些方法:
- sort_index()的排序操作
- sort_values()的实际应用
- rank()函数的灵活运用
掌握这些排序技巧,无论是数据预处理还是数据分析,都将让你在Python的pandas世界中如鱼得水。赶快动手实践,提升你的数据分析技能吧!
❹ Python利用pandas对数据进行特定排序
背景:在处理Hive表存储大小时,需对每个表的大小进行排序。通过命令获取的数据表大小,为直观大小,如1.1T、1.9G、49.6M。需对表根据存储大小降序排列。
环境:演示使用10行数据,真实情况有几万个表。
函数:pandas.DataFrame.sort_values。
参数详解:
- by:指定排序的字段,可为单个或多个字段。
- axis:排序方向,“0”表示行向排序,“1”表示列向排序,默认为“0”。
- ascending:排序顺序,True为升序,False为降序,需与by参数对应。
- inplace:是否原地更新数据,默认为False,返回新数据框。
- kind:排序算法,如‘quicksort’、‘mergesort’、‘heapsort’、‘stable’,默认为‘quicksort’。
- na_position:指定NaN的排序位置,'first'或'last',默认为'last'。
- ignore_index:是否忽略数据索引,默认为False。
- key:排序前使用的函数,需矢量化,传入参数为Series,返回结果也为Series。
官方文档:pandas.pydata.org/docs/...
案例完整演示:
本文介绍如何使用Python的pandas库对特定数据进行排序,具体内容请访问链接:blog.csdn.net/zhangting...