1. list.sort() list本身将被修改
list.sort() — 正序排列;
list.sort(reverse = True) — 倒叙排列;
list.sort(cmp=None, key=None, reverse=False)
list = [3,6,4,2,8,5]
list.sort()
print(list)
list.sort(reverse=True)
print(list)
[2, 3, 4, 5, 6, 8]
[8, 6, 5, 4, 3, 2]
#字母的ascall码 大写<小写,a<z
list = ['P','y','t','h','o','n']
list.sort()
print(list)
list.sort(reverse=True)
print(list)
['P', 'h', 'n', 'o', 't', 'y']
['y', 't', 'o', 'n', 'h', 'P']
2.sorted(list) 返回一个新的list
sorted(list) — 正序排列;
sorted(list,reverse = True) — 倒叙排列;
sorted(iterable, cmp=None, key=None, reverse=False)
list = [3,6,4,2,8,5]
list1=sorted(list)
print(list1)
print(list)
list2=sorted(list,reverse=True)
print(list2)
print(list)
[2, 3, 4, 5, 6, 8]
[3, 6, 4, 2, 8, 5]
[8, 6, 5, 4, 3, 2]
[3, 6, 4, 2, 8, 5]
list = ['P','y','t','h','o','n']
list1=sorted(list)
print(list1)
list2=sorted(list,reverse=True)
print(list2)
['P', 'h', 'n', 'o', 't', 'y']
['y', 't', 'o', 'n', 'h', 'P']
sort ()与sorted()区别:
list的sort()方法返回的是对已经存在的列表进行操作,无返回值,而内建函数sorted()方法返回的是一个新的list,而不是在原来的基础上进行的操作。
3.reverse()反转函数
list.reverse() — 反转排列;
reversed(list) — 反转排列;
list = [3,6,4,2,8,5]
list.reverse()
print(list)
[5, 8, 2, 4, 6, 3]
reversed(seq)
seq --- 需要转换的序列,如元组、列表、字符串、range
my_list = [3,6,4,2,8,5] #列表
print(list(reversed(my_list)))
my_Tuple = ('P','y','t','h','o','n') #元组
print(list(reversed(my_Tuple)))
my_String = 'HelloWorld' # 字符串
print(list(reversed(my_String)))
my_Range = range(1, 10) # range
print(list(reversed(my_Range)))
[5, 8, 2, 4, 6, 3]
['n', 'o', 'h', 't', 'y', 'P']
['d', 'l', 'r', 'o', 'W', 'o', 'l', 'l', 'e', 'H']
[9, 8, 7, 6, 5, 4, 3, 2, 1]
4. 按照某一列排序 df.sort_values()
用法:
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)
参数讲解:
by: 要排序的名称或名称列表。(如果轴为 0 或“索引”,则 by 可能包含索引级别或列标签。如果轴为 1 或“列”,则 by 可能包含列级别或索引标签。
axis: 要排序的轴。若axis=0或’index’,则按照指定列中数据大小排序;若axis=1或’columns’,则按照指定索引中数据大小排序,默认axis=0
ascending:bool或bool的列表,默认为True,即为升序排列。 为多个排序顺序指定列表。如果这是一个布尔值列表,则必须匹配by的长度。
inplace: 是否用排序后的数据集替换原来的数据,默认为False,即不替换。
kind: 排序算法的选择。对于DataFrames,此选项仅在对单个列或标签排序时应用。
na_position: 如果是第一个,则将NaNs放在开头;如果是最后一个,把NaNs放在最后。
ignore_index: 如果为True,则结果轴将被标记为0,1,,n - 1。
key: 在排序之前对值应用键函数。这类似于内置sorted()函数中的key参数,显著的区别是这个key函数应该是向量化的。它应该期望一个Series,并返回一个与输入具有相同形状的Series。它将被独立地应用到每一列。
示例:
data = [[2, 'Meir', 3000], [3, 'Michael', 5000], [7, 'Addilyn', 2000], [9, 'Kannon', 7000]]
employees = pd.DataFrame(data, columns=['id', 'name', 'salary']).astype({'id':'int64', 'name':'object', 'salary':'int64'})
id name salary
0 2 Meir 3000
1 3 Michael 5000
2 7 Addilyn 2000
3 9 Kannon 7000
print(employees.sort_values(by=['salary'])) #按照col1列进行升序(默认的)排列
print('\n')
print(employees.sort_values(by='salary', ascending=False)) ##按照col1列进行降序排列
print('\n')
id name salary
2 7 Addilyn 2000
0 2 Meir 3000
1 3 Michael 5000
3 9 Kannon 7000
id name salary
3 9 Kannon 7000
1 3 Michael 5000
0 2 Meir 3000
2 7 Addilyn 2000