📜  sort_values - Python (1)

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

sort_values - Python

sort_values()是Pandas库中用于对DataFrame或Series进行排序的函数。此函数可以根据指定的列或行进行排序,并可以按升序或降序排列。

语法

在DataFrame上使用 sort_values()的语法为:

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

在Series上使用 sort_values()的语法为:

Series.sort_values(axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')

参数解释:

  • by:指定按照哪一列进行排序,可以是一个列名、列索引、列标签的列表、字典或者函数。默认为按照所有列进行升序排序。
  • axis:指定按照行/列进行排序,默认为0,即按照列进行排序。
  • ascending:指定排序方式。默认为True,即升序排列。
  • inplace:如果为True,表示直接在原DataFrame或Series上进行排序,不返回任何值;如果为False(默认值),表示返回排序后的值。
  • kind:指定排序算法。默认为"quicksort",即快速排序。
  • na_position:指定缺失值(NaN)的位置。默认为"last",表示将缺失值排在排序后面;如果指定为"first",则将缺失值排在排序前面。
示例

首先,我们来创建一个示例DataFrame:

import pandas as pd
import numpy as np
data = {'name': ['Tom', 'John', 'Lucy', 'Mike'],
        'age': [20, 22, 21, 25],
        'gender': ['M', 'M', 'F', 'M']}
df = pd.DataFrame(data)
print(df)

输出结果为:

| | name | age | gender | |---|------|-----|--------| | 0 | Tom | 20 | M | | 1 | John | 22 | M | | 2 | Lucy | 21 | F | | 3 | Mike | 25 | M |

按列排序

我们可以按照某一列进行排序,例如按照年龄从小到大排序:

df.sort_values(by='age')

输出结果为:

| | name | age | gender | |---|------|-----|--------| | 0 | Tom | 20 | M | | 2 | Lucy | 21 | F | | 1 | John | 22 | M | | 3 | Mike | 25 | M |

也可以按照年龄从大到小排序:

df.sort_values(by='age', ascending=False)

输出结果为:

| | name | age | gender | |---|------|-----|--------| | 3 | Mike | 25 | M | | 1 | John | 22 | M | | 2 | Lucy | 21 | F | | 0 | Tom | 20 | M |

按多列排序

我们可以按照多个列进行排序,例如按照性别和年龄从小到大排序:

df.sort_values(by=['gender', 'age'])

输出结果为:

| | name | age | gender | |---|------|-----|--------| | 2 | Lucy | 21 | F | | 1 | John | 22 | M | | 0 | Tom | 20 | M | | 3 | Mike | 25 | M |

换序排序

我们可以按照性别和年龄从大到小排序:

df.sort_values(by=['gender', 'age'], ascending=False)

输出结果为:

| | name | age | gender | |---|------|-----|--------| | 3 | Mike | 25 | M | | 0 | Tom | 20 | M | | 1 | John | 22 | M | | 2 | Lucy | 21 | F |

按行排序

我们可以按照行进行排序,例如按照第2行(索引为1)的值进行排序:

df.sort_values(by=1, axis=1)

输出结果为:

| | age | gender | name | |---|-----|--------|------| | 0 | 20 | M | Tom | | 1 | 22 | M | John | | 2 | 21 | F | Lucy | | 3 | 25 | M | Mike |

直接替换原DataFrame

我们可以通过inplace=True参数,直接在原DataFrame上进行排序:

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

输出结果为:

| | name | age | gender | |---|------|-----|--------| | 3 | Mike | 25 | M | | 0 | Tom | 20 | M | | 1 | John | 22 | M | | 2 | Lucy | 21 | F |

总结

sort_values()函数在Pandas库中是非常有用的排序函数,通过它我们可以根据指定的列或行进行排序,并且可以按照升序或降序排列。通过灵活使用sort_values(),我们可以更方便地对数据进行排序,从而方便我们的数据分析工作。