• pandas中的Series和DataFrame的rank方法的理解


    rank是将Series或DataFrame的数据进行排序类型的一种方法,不过它并不像sort(含sort_index、sort_values等)那样返回的是排序后的数据,而是当前数据的排名。

    上述很好理解,但是往往可以看到一句话:

    默认情况下,rank是通过“为各组分配一个平均排名”的方式破坏平级关系的

    刚接触这个方法可能很难理解这句话,那么看下面的例子:
    在这里插入图片描述
    是不是仍然很难理解,为什么rank会有小数?
    这时候请再回味一下上面那句话,为各组分配一个平均排名。
    什么意思呢?
    我们可以自己先拍一下一些没用争议的数字,比如-5最小,其排名为1.0,0其次,因此其排名为2.0,数字2同理,其排名为3.0,这些都没问题,但是到了4的时候,我们发现Series中存在两个4,那么根据不同的规则,我们可以说数字4的排名是4.0,但也可以说是5.0,而“为各组分配一个平均排名”就能很好的解释这个4.5的来源了,即取4.0和5.0的平均值,那么对于数字7来说,也是一个道理了,其既可以取6.0,也可以取7.0,这里平均一下,就成了6.5了。

    当然上述全都是默认情况下的排名方式,我们可以根据自己的实际需要对这种排名的方式进行调整,rank函数为我们提供了一个method参数.

    在这里插入图片描述
    如上图所示,设置为method为first时,对于相同的数据,它会根据数据出现的顺序进行排序。
    其他的method的取值及说明如下:
    在这里插入图片描述
    同时,我们可以让rank的排名顺序为逆序,这是只需设置ascending = False即可,示例如下:
    在这里插入图片描述
    上述全都是对于Series的操作,而对于DataFrame而言方法是一样的,只是在DataFrame中,我们可以自己选择是在行还是列上进行计算,rank方法中有axis参数,按需设置即可。

    参考资料:
    1、《利用python进行数据分析》
    2、https://ask.csdn.net/questions/717823

  • 相关阅读:
    游览器保存密码和自动填充密码的困惑 (browser save password and auto fill password )
    SQL basic
    ui router digest 10 time
    HttpCookie
    web api 2 学习笔记 (OData Batch request)
    $provide.decorator
    Entity Framewor 学习笔记 (碎碎的东西)
    生活类App原型制作分享-AnyList
    2019年网页设计趋势前瞻,先睹为快!
    Mockplus3.5.0.1新增标注功能
  • 原文地址:https://www.cnblogs.com/yinyoupoet/p/13287392.html
Copyright © 2020-2023  润新知