随着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。因为我们的数据里不存在重复值,所以这个参数传递与否无所谓。
领取专属 10元无门槛券
私享最新 技术干货