一、pandas中的rank()函数

首先随机初始化一组数,然后

data = pd.Series([1,2,3,4,5])
print(data)
data = data.rank()
print(data)

这里的rank()函数打印出来虽然和原数组没区别,但是这里rank表示的是次序,所以这里的1.0,2.0表示的是第一名和第二名

如果有重复值的话

data = pd.Series([1,1,2,2,3,3,4,4,5])
print(data)
data = data.rank()
print(data)

这里的的数组首先是有序的,所以数组里的第一个1的名次是第一名,表示1.0,第二个1的名次是第二名,表示2.0,重复值的话,默认求平均,所以它俩的名次平均值就是(1.0+2.0)/2 = 1.5,同理,第一个2是第三名,表示3.0,第二个2是第四名,表示4.0,平均值是(3.0+4.0)/2 = 3.5.

rank函数提供了method的参数,通过设置method参数,可以控制自己想要的排名方式。
如果说这个rank函数要解决的是考试排名的问题,现在出现了有两个同学并列第一的情况:

method='average' (默认设置):那么这两个人就占据了前两名,分不出谁第 1,谁第 2,就把两人的名次算个平均数,都算 1.5 名,这样下一个人就是第3名。

method='max':两人并列第 2 名,下一个人是第 3 名。

method='min':两人并列第 1 名,下一个人是第 3 名。

method='dense':两人并列第 1 名,但下一个人是第 2 名。

method='first':那么试卷先被改出来的人是第 1 名,试卷后被改出来的是第 2 名。(这个例子并不严谨,实际会按照本来序列的显示顺序先后来排名)

二、groupby中的rank()函数

groupby是聚合函数,对于某一列或多列进行聚合,可以看Pandas教程 | 超好用的Groupby用法详解 - 知乎

进行学习

假设随机初始化几列数

import pandas as pd
list1 = [1, 3, 1,0,7,4,0]
list2 = [3, 3, 2,0,4,4,5]
list3 = [3, 3, 3,3,4,4,6]
df1 = pd.DataFrame({'col1':list1,'col2':list2,'col3':list3})
print(df1)

df1 = df1.groupby(['col3']).rank(ascending=False)
print(df1)

我们对col3进行聚合,然后再排名,其中ascending=False表示降序,打印一下结果

首先看col1这一列。col1和col3可以分为三块,分别是

由于是降序,那么排完序之后就变成了

 注意:这里的排序是每一块内单独排序,所以rank()函数的排名也是每一块的单独排名。

对于第一个块中,3现在是第一名,表示为1.0,第一个1是第二名,表示为2.0,第二个1是第三名,表示为3.0,method默认为平均,所以它俩的名次是(2.0+3.0)/2 = 2.5,0是第四名,表示为4.0。所以结果为

它这个结果是将排序后的顺序放在一开始分块后的结果上,意思就是

顺序是放在   这个结果上面,所以结果是

对于第二个块中,7是第一名,表示为1.0,4是第二名,表示为2.0,所以结果为

其他都同理。

其中groupby的rank函数也有method参数,用法与rank函数相同,这里不做介绍。

参考:

Pandas | rank()函数_Code_Porter的专栏-CSDN博客_pandas rank函数

Pandas —— rank( )函数进行排名_starter_____的博客-CSDN博客_dataframe rank

Pandas教程 | 超好用的Groupby用法详解 - 知乎

Pandas中 的 rank() 函数 和 groupby 的 rank() 函数用法相关推荐

  1. pandas使用groupby.first函数、groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异)

    pandas使用groupby.first函数.groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异) 目录

  2. Pandas 中的这 3 个函数,没想到竟成了我数据处理的主力

    作者 | luanhz   责编 | 张文 来源 | 转载自公众号小数志 学 Pandas 有一年多了,用 Pandas 做数据分析也快一年了,常常在总结梳理一些 Pandas 中好用的方法.例如三个 ...

  3. Pandas中的这3个函数,没想到竟成了我数据处理的主力

    公众号后台回复"图书",了解更多号主新书内容 作者:luanhz 来源:小数志 学Pandas有一年多了,用Pandas做数据分析也快一年了,常常在总结梳理一些Pandas中好用的 ...

  4. pandas pandas中stack()与unstack()函数用法

    pandas pandas中stack()与unstack()函数用法

  5. 详解pandas中的groupy机制

    公众号:尤而小屋 作者:Peter 编辑:Peter 大家好,我是Peter~ 在自己的数据处理分析日常中,经常会遇到对数据的某个字段进行分组再求和或均值等其他操作的需求,比如电商中根据不同的支付用户 ...

  6. 【Python】Pandas中的宝藏函数-rank()

    所谓的排名,就是一组数据,我们想要知道每一条数据在整体中的名次,需要的是输出名次,并不改变原数据结构. 排序会改变原来的数据结构,且不会返回名次,这一点区别需要弄明白.初学的时候容易弄混淆. 本文将通 ...

  7. ML之FE:pandas库中数据分析利器之groupby分组函数、agg聚合函数、同时使用groupby与agg函数组合案例之详细攻略

    ML之FE:pandas库中数据分析利器之groupby分组函数.agg聚合函数.同时使用groupby与agg函数组合案例之详细攻略 目录 pandas库中数据分析利器之groupby分组函数.ag ...

  8. rank函数python_python pandas中如何实现excel中的rank函数

    python pandas中如何实现excel中的rank函数​mp.weixin.qq.com rank函数在excel中尝用来实现对数据的排名,在pandas中有同样的函数来实现同样的功能,下面我 ...

  9. Python—pandas中DataFrame类型数据操作函数

    python数据分析工具pandas中DataFrame和Series作为主要的数据结构.  本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数.  1)查看DataFram ...

最新文章

  1. 十个 Linux 新手管理员易犯错误
  2. wsl2 图形界面_WSL2配置xrdp一键启动至桌面环境
  3. 请在请求中携带deviceid参数_实战SpringCloud通用请求字段拦截处理
  4. bcc Reference Guide 中文翻译
  5. pymysql.err.InterfaceError: (0, '')
  6. linux grep 正则搜索某段时间内的日志
  7. python redis模块connectionerror_ConnectionError:Error 2连接到Python/Django Redis中的unix套接字...
  8. 让想法更加结构化!思维导图工具MindManager
  9. Redis再入门 codis 对比 Memcached
  10. hive 日期函数_数据分析面试必备——SQL窗口函数你会了吗?
  11. Ognl表达式(根据Apache-Ognl文档直译)
  12. yaahp层次分析法步骤_层次模型构造
  13. Groovy使用指南
  14. 微信拍一拍,竟然一行代码搞定
  15. WordPress社交问答社区主题模板
  16. 福利福利!!!!!!!!往这看!!!!!
  17. 关于在win10电脑开启移动热点,手机连上wifi显示无互联网连接的问题
  18. 富贵不压重发_俗语“贵人不顶重发”,重发是啥意思?为什么这样说?
  19. UHD-SDI GT v2.0(PG380)
  20. MySQL 5.7中sync_binlog参数和半同步中after_commit和after_sync的区别

热门文章

  1. 如何不冒昧的问妹子年龄又能清楚的知道她多大呢?Python来告诉你。
  2. 苹果公司创始人乔布斯生平简介
  3. 安卓恶意软件检测论文内容整理
  4. python中save是什么意思_如何在Python中生成save函数
  5. Java运算符与Scanner键盘输入
  6. 1.代码到指令及计算机如何执行指令
  7. 解读华为的千手观音文化
  8. 计算机软件作文800字,电脑程序选择不走的表作文800字 关于电脑程序选择不走的表的作文800字...
  9. Android开发中的水波纹效果实现
  10. java程序员必知的 8大排序