pandas中Series和DataFrame的rank方法解析

 更新时间:2024年09月10日 10:04:03   作者:_吟游诗人  
pandas中的rank方法是用于数据排名的重要工具,它不返回排序后的数据,而是数据的排名。rank方法可以处理相同数据的排名,通过平均排名方式解决排名冲突,并支持自定义排序规则及逆序排名。此外,DataFrame的rank方法允许在行或列上计算排名

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参数,按需设置即可。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python 经典算法100及解析(小结)

    Python 经典算法100及解析(小结)

    这篇文章主要介绍了Python 经典算法100及解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 基于Python制作一键桌面整理工具

    基于Python制作一键桌面整理工具

    相信大家虽然有很多一键整理桌面的软件,但是对于其他路径下的文件,同样需要整理,还是很麻烦的。于是本文将利用Python制作一个桌面整理小工具,需要的可以参考一下
    2022-04-04
  • 使用Pandas操作Excel文件的技巧与方法分享

    使用Pandas操作Excel文件的技巧与方法分享

    今天接到一个需求,需要读取excel,将其中两列分别作为字典的key、value进行保存,怎么读取excel呢,之前好像使用过Pandas,但是接触不多,借此机会记录一下学习的收获,需要的朋友可以参考下
    2023-12-12
  • 基于opencv和pillow实现人脸识别系统(附demo)

    基于opencv和pillow实现人脸识别系统(附demo)

    人脸识别就是一个程序能识别给定图像或视频中的人脸,本文主要介绍了opencv和pillow实现人脸识别系统,本文不涉及分类器、训练识别器等算法原理,感兴趣的可以了解一下
    2021-11-11
  • Python打印“菱形”星号代码方法

    Python打印“菱形”星号代码方法

    本篇文章通过代码实例给大家详细分析了Python打印“菱形”星号代码方法,对此有需要的朋友参考下吧。
    2018-02-02
  • Python pypinyin注音库轻松丝滑实现汉字转换成拼音

    Python pypinyin注音库轻松丝滑实现汉字转换成拼音

    pypinyin 库,能像功夫熊猫那样,轻松、快捷地帮你把汉字转换成拼音,有了 pypinyin,不仅可以节省宝贵的时间,还可以更准确地展示中文字符的读音,使文化交流更为顺畅,本文带大家一起探索 pypinyin 库的魅力
    2024-01-01
  • Python实现获取视频时长功能

    Python实现获取视频时长功能

    这篇文章主要介绍了Python如何实现获取视频时长功能,可以精确到毫秒。文中的示例代码简洁易懂,对我们的学习有一定的帮助,感兴趣的可以了解一下
    2021-12-12
  • python 利用百度API识别图片文字(多线程版)

    python 利用百度API识别图片文字(多线程版)

    这篇文章主要介绍了python 利用百度API识别图片文字(多线程版),帮助大家更好的利用python进行机器识别,感兴趣的朋友可以了解下
    2020-12-12
  • pandas.str.replace 不起作用的解决方法

    pandas.str.replace 不起作用的解决方法

    最近做项目,涉及到字符串替换,所以直接想到的方法是用 pandas.Series.str.replace 来进行替换,本文主要介绍了pandas.str.replace 不起作用的解决方法,感兴趣的可以了解一下
    2024-03-03
  • 利用Python制作自已的动态屏保

    利用Python制作自已的动态屏保

    这篇文章主要为大家详细介绍了如何利用Python制作自已的动态屏保,文中的示例代码讲解详细,对我们学习Python有一定的帮助,需要的可以参考一下
    2022-12-12

最新评论