sort_values()是pandas中比较常用的排序方法,其主要涉及以下三个参数:
by : str or list of str(字符或者字符列表)
Name or list of names to sort by.
当需要按照多个列排序时,可使用列表
ascending : bool or list of bool, default True
(是否升序排序,默认为true,降序则为false。如果是列表,则需和by指定的列表数量相同,指明每一列的排序方式)
na_position : {‘first’, ‘last’}, default ‘last’。
(如果指定排序的列中有nan值,则指定nan值放在第一个还是最后一个)
>>> import pandas as pd
>>> import numpy as np
>>> df = pd.read_excel(r'D:/myExcel/1.xlsx')
>>> df
id name score grade
0 a bog 45.0 A
1 c jiken 67.0 B
2 d bob 23.0 A
3 b jiken 34.0 B
4 f lucy NaN A
5 e tidy 75.0 B
# 按照score升序排列,nan值放在最后
>>> df.sort_values('score')
id name score grade
2 d bob 23.0 A
3 b jiken 34.0 B
0 a bog 45.0 A
1 c jiken 67.0 B
5 e tidy 75.0 B
4 f lucy NaN A
# 按照score降序排列,nan值放在最后
>>> df.sort_values('score', ascending=False)
id name score grade
5 e tidy 75.0 B
1 c jiken 67.0 B
0 a bog 45.0 A
3 b jiken 34.0 B
2 d bob 23.0 A
4 f lucy NaN A
# nan值放在第一位
>>> df.sort_values('score', na_position='first')
id name score grade
4 f lucy NaN A
2 d bob 23.0 A
3 b jiken 34.0 B
0 a bog 45.0 A
1 c jiken 67.0 B
5 e tidy 75.0 B
# 按照'name列降序排序,id升序排列'
>>> df.sort_values(by=['name', 'id'], ascending=[False, True])
id name score grade
5 e tidy 75.0 B
4 f lucy NaN A
3 b jiken 34.0 B
1 c jiken 67.0 B
0 a bog 45.0 A
2 d bob 23.0 A
哈哈,以上就是python小工具关于pandas的sort_values排列,重点可以学习一下pandas按照多列排序。