Python技术迷

Pandas 教程-Pandas DataFrame.sort()

整理:python架构师

在DataFrame中,我们可以通过不同的方式高效地进行排序:

  • 按标签

  • 按实际值

在解释这两种排序之前,首先我们需要使用一个数据集进行演示:
import pandas as pd  import numpy as np  info=pd.DataFrame(np.random.randn(10,2),index=[1,3,7,2,4,5,9,8,0,6],columns=['col2','col1'])  print(info)
输出
         col2          col11      -0.456763     -0.9311563       0.242766     -0.7935907       1.133803      0.4543632      -0.843520     -0.9382684      -0.018571     -0.3159725      -1.951544     -1.3001009      -0.711499      0.0314918       1.648080      0.6956370       2.576250     -0.6251716      -0.301717      0.879970

在上面的DataFrame中,标签和值都是未排序的。所以,让我们看看如何进行排序:

按标签

可以使用sort_index()方法对DataFrame进行排序。可以通过传递轴参数和排序顺序来完成。默认情况下,按行标签升序排序。

示例

import pandas as pd  import numpy as np  info=pd.DataFrame(np.random.randn(10,2),index=[1,2,5,4,8,7,9,3,0,6],columns = ['col4','col3'])  info2=info.sort_index()  print(info2)
输出
       col4          col30     0.698346      1.8975731     1.247655     -1.2089082    -0.469820     -0.5469183    -0.793445      0.3620204    -1.184855     -1.5964895     1.500156      -0.3976356    -1.239635      -0.2555457     1.110986      -0.6817288    -1.797474       0.1088409     0.063048       1.512421
专属福利 
👉点击领取:最全Python资料合集

排序顺序

通过将布尔值传递给ascending参数,可以控制排序的顺序。

示例:

import pandas as pd  import numpy as np  info= pd.DataFrame(np.random.randn(10,2),index=[1,4,7,2,5,3,0,8,9,6],columns = ['col4','col5'])  info_2 = info.sort_index(ascending=False)  print(info)
输出
        col4          col51      0.664336     -1.8465334     -0.456203     -1.2553117      0.537063     -0.7743842     -1.937455      0.2573155      0.331764     -0.7410203     -0.082334      0.3043900     -0.983810     -0.7115828      0.208479     -1.2346409      0.656063      0.1227206      0.347990     -0.410401

对列进行排序:

我们可以通过传递与其值相关的轴参数0或1,对列标签进行排序。默认情况下,axis=0,它按行排序。

示例:

import pandas as pd  import numpy as np  info = pd.DataFrame(np.random.randn(10,2),index=[1,4,8,2,0,6,7,5,3,9],columns = ['col4','col7'])  info_2=info.sort_index(axis=1)  print(info_2)
输出
       col4          col71    -0.509367     -1.6095144    -0.516731      0.3973758    -0.201157     -0.0098642     1.440567       1.0584360     0.955486      -0.0097776    -1.211133       0.4151477     0.095644       0.5317275    -0.881241      -0.8713423     0.206327       -1.1547249     1.418127        0.146788

按实际值

这是DataFrame中可以执行的另一种排序方式。与索引排序类似,sort_values()是按值排序的方法。

它还提供了一种功能,即我们可以指定要排序的DataFrame的列名。这是通过传递'by'参数来完成的。

示例:

import pandas as pd  import numpy as np  info = pd.DataFrame({'col1':[7,1,8,3],'col2':[8,12,4,9]})  info_2 = info.sort_values(by='col2')  print(info_2)
输出
     col1    col22     8       40     7       83     3       91     1       12

在上面的输出中,注意值仅按col2排序,并且相应的col1值和行索引将随着col2而改变。因此,它们看起来是未排序的。

参数

  • columns: 在排序之前,您必须传递一个对象或列名。

  • ascending: 传递一个布尔值,用于按升序排序。其默认值为True。

  • axis: 0或索引;1或'columns'。默认值为0。它决定是按索引还是按列排序。

  • inplace: 传递一个布尔值。其默认值为false。在对DataFrame进行排序时,它会修改对此对象的任何其他视图,并且不会在排序DataFrame时创建新的实例。

  • kind: 'heapsort', 'mergesort', 'quicksort'。这是一个可选参数,仅在对单个列或标签进行排序时应用。

  • na_position: 'first', 'last'。'first'将NaN放在开头,而'last'*将NaN放在末尾。默认选项是last。
Image
 1
Image
热门推荐
Image