要对Pandas数据框进行排序,可以使用sort_values()
函数。该函数的语法如下:
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
参数说明:
- by:指定排序依据的列名或者一组列名
- axis:指定排序轴,0表示按照行排序,1表示按照列排序
- ascending:指定升序排序还是降序排序,默认为升序排序
- inplace:是否直接对原DataFrame进行操作,默认为False,即不对原DataFrame进行修改,返回一个排好序的新DataFrame
- kind:指定排序算法,包括quicksort(快速排序)、mergesort(归并排序)和 heapsort(堆排序)
- na_position:指定缺失值的位置,取值是first或last,默认值是last,表示缺失值放在最后
下面,我们使用一个示例说明如何进行排序。假设有一个包含学生姓名、年龄和成绩的数据框,我们需要按照成绩升序排序,如果成绩相同,按照年龄降序排序。代码如下:
import pandas as pd
# 创建数据框
df = pd.DataFrame({'Name':['Tom', 'Jerry', 'Mike', 'Jack', 'Amy'],
'Age':[22, 20, 21, 23, 22],
'Score':[85, 76, 90, 85, 82]})
# 按照Score升序排序,如果相同,按照Age降序排序
df_sorted = df.sort_values(by=['Score', 'Age'], ascending=[True, False])
print(df_sorted)
输出结果如下:
Name Age Score
1 Jerry 20 76
4 Amy 22 82
0 Tom 22 85
3 Jack 23 85
2 Mike 21 90
结果表明,按照成绩升序排序后,分别比较年龄,年龄越大的越靠前。
除了多列排序外,还可以选择只按照一列进行排序。例如,我们可以按照年龄升序排序,代码如下:
import pandas as pd
# 创建数据框
df = pd.DataFrame({'Name':['Tom', 'Jerry', 'Mike', 'Jack', 'Amy'],
'Age':[22, 20, 21, 23, 22],
'Score':[85, 76, 90, 85, 82]})
# 按照Age升序排序
df_sorted = df.sort_values(by='Age')
print(df_sorted)
输出结果如下:
Name Age Score
1 Jerry 20 76
2 Mike 21 90
0 Tom 22 85
4 Amy 22 82
3 Jack 23 85
结果表明,按照年龄升序排序后,结果从小到大排列。
总之,Pandas数据框的排序操作,通过sort_ values()函数非常简单,只需要指定排序的列名、排序方式等参数,就可以得到我们需要的排序结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何对Pandas数据框架进行排序 - Python技术站