df.sort_values() 按照某列排序
sort_value
sort_values,按照某一列的大小进行排序,(沿任一轴的值排序)
DataFrame.sort_values(by,axis = 0,ascending = True,inplace = False,kind = ' quicksort ',na_position = 'last',ignore_index = False,key = None)
参数:
- by:str or list of str,就是要根据哪一列排序的列名,或者是索引名,是str类型,或者是list
- axis:{0 or ‘index’, 1 or ‘columns’}, default 0,要排序的轴,如果不记得0、1代表着什么,可以使用index或者columns代替。
- ascending:bool or list of bool, default True,按升序还是降序排序。指定多个排序顺序的列表。如果这是布尔列表,则必须与by的长度匹配
- inplace:bool, default False
- kind:{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’,选择排序算法
- na_position:{‘first’, ‘last’}, default ‘last’,是将控制放在最开始还是最后,默认是最后
- ignore_index:bool, default False,如果为True,则结果轴将标记为0、1,…,n-1。
- key:callable, optional,在排序之前,将键函数应用于这些值,别是此key函数应被向量化
官网例子
df = pd.DataFrame({ 'col1': ['A', 'A', 'B', np.nan, 'D', 'C'], 'col2': [2, 1, 9, 8, 7, 4], 'col3': [0, 1, 9, 4, 2, 3], 'col4': ['a', 'B', 'c', 'D', 'e', 'F'] }) df
col1 col2 col3 col4
0 A 2 0 a
1 A 1 1 B
2 B 9 9 c
3 NaN 8 4 D
4 D 7 2 e
5 C 4 3 F
按col1排序
df.sort_values(by=['col1'])
col1 col2 col3 col4
0 A 2 0 a
1 A 1 1 B
2 B 9 9 c
5 C 4 3 F
4 D 7 2 e
3 NaN 8 4 D
按多列排序
df.sort_values(by=['col1', 'col2'])
col1 col2 col3 col4
1 A 1 1 B
0 A 2 0 a
2 B 9 9 c
5 C 4 3 F
4 D 7 2 e
3 NaN 8 4 D
降序排列
df.sort_values(by='col1', ascending=False)
col1 col2 col3 col4
4 D 7 2 e
5 C 4 3 F
2 B 9 9 c
0 A 2 0 a
1 A 1 1 B
3 NaN 8 4 D
将NA放在首位
df.sort_values(by='col1', ascending=False, na_position='first')
col1 col2 col3 col4
3 NaN 8 4 D
4 D 7 2 e
5 C 4 3 F
2 B 9 9 c
0 A 2 0 a
1 A 1 1 B
按键功能排序
df.sort_values(by='col4', key=lambda col: col.str.lower())
col1 col2 col3 col4
0 A 2 0 a
1 A 1 1 B
2 B 9 9 c
3 NaN 8 4 D
4 D 7 2 e
5 C 4 3 F