📜  Python| Pandas Dataframe.sort_values() |第 2 组(1)

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

Python | Pandas Dataframe.sort_values() |第 2 组

Pandas是Python中的一个数据分析库,它提供了许多有用的函数和数据结构,可用于处理和分析数据。

在这里,我们将讲解Pandas Dataframe.sort_values()函数的第2个参数。

Dataframe.sort_values(by、axis = 0、ascending = True、inplace = False、kind ='quicksort'、na_position ='last')

此函数用于按指定列或行对DataFrame进行排序。默认情况下,它按升序排序,并返回一个新的DataFrame对象。

参数解释:

  • by:用于排序的列名或列的列表
  • axis:0表示按行排序,1表示按列排序
  • ascending:指定排序顺序。默认为True(升序),False为降序。(可以传入一个列表来指定不同列排序顺序)
  • inplace:如果为True,则无需返回排序后的DataFrame,可直接更改原始DataFrame。默认为False。
  • kind:指定排序算法类型,通常使用'quicksort'、'mergesort'或'heapsort'。默认为'quicksort'
  • na_position:如果有缺失值,则指定其位置。可选项为'last'或'first'。默认为'last'。
第2个参数:by、ascending

我们可以通过by参数指定排序的列名或列的列表。其次,有时候我们需要对不同的列采取不同的排序方式,对此我们可以传入ascending参数来指定不同列的排序顺序。

下面是一个例子:

import pandas as pd

data = {
    'name': ['Tom', 'Bob', 'Mary', 'James'],
    'age': [23, 45, 17, 29],
    'salary': [45678, 28934, 34213, 54321]
}

df = pd.DataFrame(data)

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

输出结果为:

    name  age  salary
3  James   29   54321
1    Bob   45   28934
2   Mary   17   34213
0    Tom   23   45678

在上面的例子中,我们使用了by参数传入了两个排序的列名:'salary'和'age'。同时,我们使用ascending参数传入了两个布尔值,表示两个不同的列采取升序或降序排序的方式。具体来说,'salary'列采用了降序排序方式(参数为False),而'age'列采用了升序排序方式(参数为True)。

这样,我们就成功地对DataFrame进行了基于多列的排序。

参考资料