对Dataframe进行多列排序——sort_values

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=0ascending若 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

Original: https://blog.csdn.net/BlueWhale52/article/details/119187311
Author: BlueWhale52
Title: 对Dataframe进行多列排序——sort_values

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/675297/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球