学科分类
目录
数据分析

按索引排序

在数据处理中,数据的排序也是常见的一种操作。由于Pandas中存放的是索引和数据的组合,所以它既可以按索引进行排序,也可以按数据进行排序。

Pandas中按索引排序使用的是sort_index()方法,该方法可以用行索引或者列索引进行排序。sort_index()方法的语法格式如下:

sort_index(axis = 0,level = None,ascending = True,inplace = False,kind =' quicksort ',
           na_position ='last',sort_remaining = True)

上述方法中常用参数的说明如下:

(1) axis:轴索引(排序的方向),0表示index(按行),1表示columns(按列)。

(2) level:若不为None,则对指定索引级别的值进行排序。

(3) ascending:是否升序排列,默认为True表示升序。

(4) inplace:默认为False,表示对数据表进行排序,不创建新的实例。

(5) kind:选择排序算法。

默认情况下,Pandas对象是按照升序排列,当然也可以通过参数ascending=False改为降序排列。

接下来,通过一些简单的示例来演示如何按索引对Series和DataFrame进行分别排序,具体代码如下。

In [49]:  import pandas as pd
          ser_obj = pd.Series(range(10, 15), index=[5, 3, 1, 3, 2])
          ser_obj
Out[49]: 
5  10
3  11
1  12
3  13
2  14
dtype: int64
In [50]: ser_obj.sort_index()          # 按索引进行升序排列
Out[50]: 
1  12
2  14
3  11
3  13
5  10
dtype: int64
In [51]: ser_obj.sort_index(ascending = False) # 按索引进行降序排列
Out[51]: 
5  10
3  11
3  13
2  14
1  12
dtype: int64

对DataFrame的索引进行排序,示例代码如下。

In [52]:  import pandas as pd
          import numpy as np
          df_obj = pd.DataFrame(np.arange(9).reshape(3, 3), index=[4, 3, 5])
          df_obj
Out[52]: 
  0 1 2
4 0 1 2
3 3 4 5
5 6 7 8
In [53]: df_obj.sort_index()                  # 按行索引升序排列
Out[53]: 
  0 1 2
3 3 4 5
4 0 1 2
5 6 7 8
In [54]: df_obj.sort_index(ascending=False)   # 按行索引降序排列
Out[54]: 
  0 1 2
5 6 7 8
4 0 1 2
3 3 4 5

需要注意的是,当对DataFrame进行排序操作时,要注意轴的方向。如果没有指定axis参数的值,则默认会按照行索引进行排序;如果指定axis=1,则会按照列索引进行排序。

点击此处
隐藏目录