阅读 228

Pandas的排序方式介绍(Pandas有几种排序方式?)

Pandas的排序方式有两种:

按 标签按实际值

我们看一个下面的示例。

示例

 import pandas as pd
 import numpy as np
 unsorted_df=pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
 mns=['col2','col1'])
 print(unsorted_df)

运行结果:

    col2       col11  -2.063177   0.5375274   0.142932  -0.6848846   0.012667  -0.3893402  -0.548797   1.8487433  -1.044160   0.8373815   0.385605   1.3001859   1.031425  -1.0029678  -0.407374  -0.4351420   2.237453  -1.0671397  -1.445831  -1.701035

在unsorted_df中,标签和值未排序。让我们看看如何对它们进行排序。

按标签排序

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

示例

 import pandas as pd
 import numpy as np
 unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
    mns = ['col2','col1'])
 sorted_df=unsorted_df.sort_index()
 print(sorted_df)

运行结果:

     col2        col19    0.825697    0.3744638   -1.699509    0.5103737   -0.581378    0.6229586   -0.202951    0.9543005   -1.289321   -1.5512504    1.302561    0.8513853   -0.157915   -0.3886592   -1.222295    0.1666091    0.584890   -0.2910480    0.668444   -0.061294

排序的顺序

通过将布尔值传递给升序参数,可以控制排序的顺序。让我们考虑以下示例以了解相同的情况。

示例

 import pandas as pd
 import numpy as np
 unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
    mns = ['col2','col1'])
 sorted_df = unsorted_df.sort_index(ascending=False)
 print(sorted_df)

运行结果:

     col2        col19    0.825697    0.3744638   -1.699509    0.5103737   -0.581378    0.6229586   -0.202951    0.9543005   -1.289321   -1.5512504    1.302561    0.8513853   -0.157915   -0.3886592   -1.222295    0.1666091    0.584890   -0.2910480    0.668444   -0.061294

按行排序

通过将轴参数传递给值0或1,可以在列标签上进行排序。默认情况下,axis = 0 按行排序。让我们考虑以下示例以了解相同的情况。

示例

 import pandas as pd
 import numpy as np
  
 unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
    mns = ['col2','col1'])
  
 sorted_df=unsorted_df.sort_index(axis=1)
 print(sorted_df)

运行结果:

     col1        col21   -0.291048    0.5848904    0.851385    1.3025616    0.954300   -0.2029512    0.166609   -1.2222953   -0.388659   -0.1579155   -1.551250   -1.2893219    0.374463    0.8256978    0.510373   -1.6995090   -0.061294    0.6684447    0.622958   -0.581378

按值排序

与索引排序类似,sort_values()是按值排序的方法。它接受一个“ by”参数,该参数将使用要对值进行排序的DataFrame的列名。

示例

import pandas as pd
 import numpy as np
 unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
    sorted_df = unsorted_df.sort_values(by='col1')
 print(sorted_df)

运行结果:

   col1  col21    1    32    1    23    1    40    2    1

注意,col1值已排序,并且相应的col2值和行索引将与col1一起更改。因此,它们看起来没有分类。

'by' 参数采用列值列表。

示例

 import pandas as pd
 import numpy as np
 unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
    sorted_df = unsorted_df.sort_values(by=['col1','col2'])
 print(sorted_df)

运行结果:

  col1 col22   1   21   1   33   1   40   2   1

排序算法

sort_values() 提供了从mergesort,heapsort和quicksort中选择算法的指定。Mergesort是唯一稳定的算法。

示例

 import pandas as pd
 import numpy as np
 unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
 sorted_df = unsorted_df.sort_values(by='col1' ,kind='mergesort')
 print(sorted_df)

运行结果:

  col1 col21    1    32    1    23    1    40    2    1


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐