原理类似于SQL中的order by,该函数即可根据指定列数据也可根据指定行的数据排序。
一、函数用途
Docstring:
Sort by the values along either axis(沿着任意一个轴按值排序)
二、DataFrame.sort_values()常用参数
形式:
DataFrame.sort_values(by=‘xxx’,axis=0,ascending=True, inplace=False, na_position=‘last’)
参数 | 说明 |
---|---|
by | 指定列名(axis=0或’index’)或索引值(axis=1或’columns’) |
axis | 默认axis=0行列排序,axis=1按行排序 |
ascending | 选择升序(默认true),或者降序(false) |
inplace | 默认为False,即不替换 |
na_position | {‘first’, ‘last’}, default 'last’表示空值位置 |
三、案例
3-1创建数据DataFrame数据框
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']
... })
print(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
3-2Sort by col1(按照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
3-3Sort by multiple columns(按多列排序)
>>> 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
3-4Sort Descending(降序排序)
>>> 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
3-5Putting NAs first(把NAs放在第一位)
>>> 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