📜  Python|熊猫索引.sort_values()(1)

📅  最后修改于: 2023-12-03 15:04:27.637000             🧑  作者: Mango

Python | 熊猫索引.sort_values()

熊猫(Pandas)是一种流行的Python数据处理库。通常情况下,我们需要在数据框中排序,这时就需要了解sort_values()函数。

sort_values()函数简介

sort_values()是pandas的一个数据框函数,用于根据某列或多列对数据框进行排序。

语法
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
参数
  • by:这个参数可以是一个列标签或者一列标签列表。标签可以是字符串或者整数。如果by是字符串,那么这个字符串可以指代列标签的名字或者列内容的名字。
  • axis:这个参数主要控制排序是按行进行排序还是按列进行排序。axis的默认值是0,也就是按列进行排序。
  • ascending:默认是True,意思是升序排列。如果设定为False,则是倒序排列。
  • inplace:默认是False,也就是不对原数据进行修改。
  • kind:排序算法。默认是quicksort。
  • na_position:在哪里将NA放在排序列的开始或结尾。默认是last。
sort_values()函数的使用

考虑以下这个数据框:

import pandas as pd

df = pd.DataFrame({'name': ['John', 'Alex', 'Mike', 'Mark', 'Jack', 'Lucy', 'Mary'],
                   'age': [25, 16, 19, 27, 18, 23, 17],
                   'score': [90, 80, 65, 70, 92, 87, 75]})
    
print(df)

输出:

    name  age  score
0   John   25     90
1   Alex   16     80
2   Mike   19     65
3   Mark   27     70
4   Jack   18     92
5   Lucy   23     87
6   Mary   17     75

现在,我们想要通过name列来对数据框进行排序:

df.sort_values(by='name', ascending=True, inplace=True)
    
print(df)

输出:

    name  age  score
1   Alex   16     80
4   Jack   18     92
0   John   25     90
2   Mike   19     65
6   Mary   17     75
3   Mark   27     70
5   Lucy   23     87

从输出中,我们可以看到name列是按字母顺序进行的排序。

我们也可以通过多列进行排序,比如,我们可以先通过score降序,再通过age升序来对数据框进行排序:

df.sort_values(by=['score', 'age'], ascending=[False, True], inplace=True)
    
print(df)

输出:

    name  age  score
4   Jack   18     92
0   John   25     90
5   Lucy   23     87
3   Mark   27     70
6   Mary   17     75
1   Alex   16     80
2   Mike   19     65

从输出中,我们可以看到排序是依照前一列先进行排序,然后在此排序基础上进行下一列的排序。在第一列中,由于我们向降序排列,因此分数最高的Jack排在了第一位。而在分数相同的情况下,我们又通过年龄的升序来实现更精细的排序。

结论

sort_values()函数是一个非常有用的函数,可以帮助我们对熊猫数据框进行排序,使之符合我们的需求。通过by、ascending、inplace等参数的灵活搭配,我们可以轻松实现强大的数据处理能力。