📅  最后修改于: 2023-12-03 15:20:11.284000             🧑  作者: Mango
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 |
我们可以通过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()
,我们可以更方便地对数据进行排序,从而方便我们的数据分析工作。