如何在Python中对Pandas DataFrame进行多列排序
排序是根据条件要求对数据框进行的操作之一。我们可以按字母以及数字顺序对数据框架进行排序。在这篇文章中,我们将看到如何通过多列对Pandas数据框架进行排序。
方法1:使用sort_values()方法
语法: df_name.sort_values(by column_name, axis=0, ascending=True, inplace=False, kind=’quicksort’, na_position=’last’, ignore_index=False, key=None)
参数:
by: 列表或列的名称,应按其排序。
axis:要排序的axis。(0或’axis’1或’列’)默认为0。(列号)。
ascending:升序或降序的排序。为多个排序顺序指定bool值列表。bool值的列表必须与’by’即column_names的值的数量相匹配。默认情况下,它是真实的。
inplace:默认为false,但如果它的值为true,则在原地执行操作,即在适当的地方。
kind:选择排序算法,如快速排序、合并排序、堆排序。默认是快速排序。
对数据框架进行排序:
- 引入模块。
- 创建一个DataFrame。
- 现在,使用上述语法对一个DataFrame进行排序。
创建一个数据框架:
输出:
示例 1:
输出:
在上面的例子中,升序值为false,所以,DataFrame被排序为降序。
示例 2:
输出:
在上面的例子中,DataFrame是根据’Rank’列进行排序的,nan的值被定位在第一位。
示例 3:
输出:
在上面的例子中,数据框架是根据’Rank’列进行排序的,但是由于我们给了’ignore_index = True’参数,所以索引号是以0开始。在其他例子中,由于我们没有给出’ignore_index’参数,所以索引是无序的。
方法2:使用sort_index()方法
语法:
df_name.sort_index(axis=0, level=None, ascending=True, inplace=False, kind=’quicksort’, na_position=’last’, sort_remaining=True, ignore_index=False, key=None)
例子1:使用上述创建的数据框架
输出:
因为ascending参数的值为False,所以DataFrame的索引是以降序排列的。DataFrame是按照索引顺序排序的。
示例 2:
输出: