📅  最后修改于: 2023-12-03 15:25:11.454000             🧑  作者: Mango
Pandas是Python中非常常用的数据分析和数据处理库。当我们需要对数据框中的数据进行排序时,可以使用Pandas中的sort_values()函数。
sort_values()函数用于对数据框中的值进行排序。语法为:
dataframe.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
参数说明:
下面是一个简单的示例,对数据框的一列进行排序:
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'Danielle'], 'age': [25, 23, 30, 32], 'score': [80, 90, 70, 85]})
print("排序前的数据框:\n", df)
df_sorted = df.sort_values(by='age', ascending=True)
print("按年龄排序后的数据框:\n", df_sorted)
输出结果为:
排序前的数据框:
name age score
0 Alice 25 80
1 Bob 23 90
2 Charlie 30 70
3 Danielle 32 85
按年龄排序后的数据框:
name age score
1 Bob 23 90
0 Alice 25 80
2 Charlie 30 70
3 Danielle 32 85
其中,by='age'指定了按照年龄这一列进行排序,ascending=True表示进行升序排序。
我们也可以对数据框的多列进行排序,只需要在by参数中传入多个列名即可:
df_sorted = df.sort_values(by=['age', 'score'], ascending=[True, False])
print("先按年龄升序排序,再按成绩降序排序的数据框:\n", df_sorted)
输出结果为:
先按年龄升序排序,再按成绩降序排序的数据框:
name age score
1 Bob 23 90
0 Alice 25 80
2 Charlie 30 70
3 Danielle 32 85
其中,by=['age', 'score']表示先按照年龄列进行排序,再按照成绩列进行排序;ascending=[True, False]表示第一列按照升序排序,第二列按照降序排序。
如果希望对原数据框进行排序,可以将inplace参数设为True:
df.sort_values(by='age', ascending=True, inplace=True)
print("排序后的数据框:\n", df)
输出结果为:
排序后的数据框:
name age score
1 Bob 23 90
0 Alice 25 80
2 Charlie 30 70
3 Danielle 32 85
Pandas中的sort_values()函数是对数据框中的值进行排序的常用函数,可以实现单列排序和多列排序,也可以选择是否对原数据框进行排序。