Pandas-排序函数-sort_values()

原理类似于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
上一篇:华为机试HJ69:矩阵乘法


下一篇:row_number() over partition by 分组聚合