pandas两个简单快速的排序方法

随着Python这门编程语言越来越火,其相应各个领域的第三方库也是配备的越来越完善了。而在数据分析的领域里,pandas这个库可以说是头雁一般的存在。

我们今天就简单讲解一下在pandas的DataFrame下,如何简单快速的按其中某列进行排序,并提取出该排序里的前n行数据。

首先导入必要的第三方库。在这里,我们导入了pandas和numpy这两个库。

然后,我们用numpy库里的随机数生成器生成了一个DataFrame。

我们对最后一列,也就是'E'列,求其前五大数值对应的行,并将它们提取出来。我们可以先对'E'列进行降序排序,然后取对应的前五行,其代码和结果如下:

检查一下,可以看到我们的结果是没有问题的。

简单讲解一下sort_values()这个方法,其作用是为DataFrame对某一列(或某几列)进行排序,返回值为排序后的DataFrame。其常用参数中,by是指定需要排序的列的标签名,axis为需要排序的轴,0代表行,1代表列(通常情况下都是对行排序)。ascending表示排序方法,True表示升序,False表示降序。

整体下来只要简单的一行代码即可,非常方便。那么,还有没有更加简便的方法呢?

答案是有的。

在DataFrame下面有一个方法就专门为实现上述问题而写的。话不多说,我们直接上代码和结果:

这个方法就是nlargest(),其第一个参数表示需要返回多少行,第二个参数表示需要排序的列的标签名。在这个方法中还有一个可选参数keep,当排序的该列里有重复值时,它可以帮我们确认保留哪个值对应的行。keep有两个可选值,first(默认值)和last。因为我们的数据里不存在重复值,所以这个参数传递与否无所谓。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181107A23QJN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券