sort_values() 函数说明

pandas库的 sort_values() 函数可以对 Dataframe 的数据集按照某个字段中的数据进行排序。该函数可以指定列数据或行数据进行排序,可以是单个,也可以是多个。

同时,对于 series 也有 sort_values() 函数,但在参数上稍有区别。

官方介绍:

sort_values() 具体参数

用法: DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’, ignore_index=False, key=None)

常用参数说明:

参数说明
by指定要进行排序的列名或索引值
axis若 axis=0 或 ‘index’,则按照指定列的数据大小排序;若 axis=1 或 ‘columns’,则按照指定索引中数据大小排序。默认axis=0
ascending若 ascending=True,则按照升序排序;若 ascending=False,则按降序排序,默认为True,即升序排序。如果这是一个 bool 列表,则必须匹配 by 的长度
inplace排序后的数据是否替换原来的数据,默认为False,即不替换
ignore_index是否重置索引,默认为不重置

sort_values() 使用案例

  • 创建 dataframe
import pandas as pd
import numpy as np
df = pd.DataFrame({
    'col1': ['A', 'A', 'B', np.nan, 'C', 'C'],
    'col2': [2, 1, 1, 8, 7, 4],
    'col3': [0, 1, 9, 4, 8, 3],
})
print(df)

>>>
  col1  col2  col3
0    A     2     0
1    A     1     1
2    B     1     9
3  NaN     8     4
4    C     7     8
5    C     4     3
  • 根据第一、三列进行降序排序
print(df.sort_values(by = ['col1','col3'],ascending=False))

>>> 
  col1  col2  col3
4    C     7     8
5    C     4     3
2    B     1     9
1    A     1     1
0    A     2     0
3  NaN     8     4
  • 根据第一列降序排序,当第一列相同时,根据第三列进行升序排序。并且重置索引,替换原数据
df.sort_values(by = ['col1','col3'],ascending=[False,True],ignore_index=True,inplace=True)
print(df)

>>>
  col1  col2  col3
0    C     4     3
1    C     7     8
2    B     1     9
3    A     2     0
4    A     1     1
5  NaN     8     4

致谢

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐