学科分类
目录
数据分析

按值排序

Pandas中用来按值排序的方法为sort_values(),该方法的语法格式如下。

sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort',
            na_position='last')

上述方法的参数与sort_index()的参数几乎一样。其中,by参数表示排序的列,na_position参数只有两个值:first和last,若设为first,则会将NaN值放在开头;若设为False,则会将NaN值放在最后。

按值的大小对Series进行排序的示例代码如下。

In [55]: ser_obj = pd.Series([4, np.nan, 6, np.nan, -3, 2])
         ser_obj
Out[55]: 
0  4.0
1  NaN
2  6.0
3  NaN
4  -3.0
5  2.0
dtype: float64
In [56]: ser_obj.sort_values()  # 按值升序排列
Out[56]: 
4  -3.0
5  2.0
0  4.0
2  6.0
1  NaN
3  NaN
dtype: float64

需要注意的是,当Series对象调用sort_values()方法按值进行排序时,所有缺失值默认都会放在末尾。

在DataFrame中,sort_values()方法可以根据一个或多个列中的值进行排序,但是需要在排序时,将一个或多个列的索引传递给by参数才行,示例代码如下:

In [57]: df_obj = pd.DataFrame([[0.4, -0.1, -0.3, 0.0], 
                                [0.2, 0.6, -0.1, -0.7],
                                [0.8, 0.6, -0.5, 0.1]])
        df_obj
Out[57]: 
   0   1   2  3
0 0.4 -0.1 -0.3 0.0
1 0.2 0.6 -0.1 -0.7
2 0.8 0.6 -0.5 0.1
In [58]: df_obj.sort_values(by=2) # 对列索引值为2的数据进行排序
Out[58]: 
   0   1   2  3
2 0.8 0.6 -0.5 0.1
0 0.4 -0.1 -0.3 0.0
1 0.2 0.6 -0.1 -0.7
点击此处
隐藏目录