Python之排序函数sort(),sorted(),sort_values(),sort_index().

Source

一、序列排序

1. sorted()函数
sorted()函数是Python的内置函数,此函数不改变原序列,在排序后会生成一个新的序列。调用时,一般只需要给出一个序列即可,该序列可以是列表,字典,元组,字符串。其余参数取默认值,默认为升序排序。最终结果将返回一个以列表为容器的返回值。若该序列为字典,将返回键的列表

list_1 = [2,5,3,9,6,4,1,3,0,2]
sorted(list_1)
#输出:
[0, 1, 2, 2, 3, 3, 4, 5, 6, 9]

#降序排序
list_1 = [2,5,3,9,6,4,1,3,0,2]
sorted(list_1,reverse=True)
#输出
[9, 6, 5, 4, 3, 3, 2, 2, 1, 0]

dict_1 = {
    
      9:'banana',4:'pear',7:'apple'}
sorted(dict_1)
#输出
[4, 7, 9]

2.sort()方法
sort()方法是Python中列表的内建函数,此方法改变原序列,即原地排序,不生成新的序列,且无返回值,默认为升序排序。字典、元组、字符串不具有sort()方法。

list_2 = [3,6,9,1,4]
list_2.sort()
print(list_2)
[1, 3, 4, 6, 9]

#降序排序
list_2 = [3,6,9,1,4]
list_2.sort(reverse = True)
print(list_2)
[9, 6, 4, 3, 1]

3. sort()方法和sorted()函数的区别:
(1)是否改变原有序列。
sort()排序改变原有序列;
sorted()排序生成一个新的序列,不改变原有的序列
(2)调用方式不一样。
sort()调用:序列.sort()
sorted()调用:sorted(序列,reverse=True/False)

二、表中排序(Python—Pandas)

1. 按值排序 :将按照表中某一个字段的值进行排序
sort_values()函数是Pandas库里面的一个排序函数,其原理类似于SQL中的order by,可以将数据集依照某个字段中的数据进行排序,该函数即可根据指定列数据也可根据指定行的数据排序。
语法:

DataFrame.sort_values(by='字段名',axis=0,ascending=True, inplace=False, na_position=‘last’)

默认为升序排序,即ascending = True。
降序排序为:ascending = False

import pandas as pd
df=pd.DataFrame({
    
      'name':['张三','李四','王五'],
                 'class':[1,3,2],
                 'score':[98,94,100]})
print(df)
	name	class	score
0	张三		  1	 	 98
1	李四		  3	 	 94
2	王五		  2	 	 100

print(df.sort_values(by = 'score'))
#降序排序将参数ascending = False 即可。
   name	  class	  score
1	李四	   3	   94
0	张三	   1	   98
2	王五	   2	   100

2.按索引排序:
通俗点讲,就是根据index的值进行排序,如果是按行排序,可以认为是根据index的值排序,如果是按列排序,可以认为是根据columns的值进行排序。
语法:

sort_index(axis=0, level=None, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’,sort_remaining=True)

axis:轴索引(排序的方向),0表示按index,1表示按columns。
level:若不为None,则对指定索引级别的值进行排序
ascending:是否升序排列,默认为True,表示升序
inplace:默认为False,表示对数据表进行排序,不创建新的实例
kind:选择排序算法。