pandas rank()函数简介
本文简单的说一下自己对pandas的rank()函数的简单讲解。
函数原型:rank(axis=0, method: str = 'average', numeric_only: Union[bool, NoneType] = None, na_option: str = 'keep', ascending: bool = True, pct: bool = False)
官方文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rank.html
《使用python进行数据分析》一书中的解释为:rank是通过“为各组分配一个平均排名”的方式破坏平级关系的。pandas排名会增加一个排名值(从1开始,一直到数组中有效数据的数量)。但是还是不好理解,我简单的做了一个图片来说明。

假设创建了一个Series对象obj = Series([7, -5, 7, 4, 2, 0, 4]),就是上图中”索引“和”值“这两列,我们人为的按照值的大小进行了一个排名,并且产生了一个序列(”人为的排名“)这一列,关于有两个索引(0和2)的值都是7的这种情况的排名的规则是,首先出现的值排名靠前。
下面就来说一下method参数的作用。
- 若为”average“,不相同的值,排名就取”人为的排名“的排名值,相同值的,排名需要求平均值,例如:索引0和2的值都为7,则平均值为(7+6)/2=6.5;
- 若为”min“,不相同的值,排名就取”人为的排名“的排名值,相同值的,排名取最小值,例如:索引0和2的值都为7,则排名都取6;
- 若为”max“,不相同的值,排名就取”人为的排名“的排名值,相同值的,排名取最大值,例如:索引0和2的值都为7,则排名都取7;
- 若为”first“,则就取”人为的排名“这列的值。
|
method |
说明 |
|
‘average’ |
默认,在相等分组中,为各个值分配平均排名 |
|
‘min’ |
使用整个分组的最小排名 |
|
‘max’ |
使用整个分组的最大排名 |
|
‘first’ |
按值在原始数据中出现顺序分配排名 |
关于”first“参数值的解释”值在原始数据中出现顺序“的解释如下:从1开始排序,若序列中出现了相同的值,则首先出现的值排名靠前。
下面进行测试:
(1)method='average'
1 >>> obj
2 0 7
3 1 -5
4 2 7
5 3 4
6 4 2
7 5 0
8 6 4
9 dtype: int64
10 >>> obj.rank( method='average')
11 0 6.5
12 1 1.0
13 2 6.5
14 3 4.5
15 4 3.0
16 5 2.0
17 6 4.5
18 dtype: float64
(2)method='min'
1 >>> obj
2 0 7
3 1 -5
4 2 7
5 3 4
6 4 2
7 5 0
8 6 4
9 dtype: int64
10 >>> obj.rank( method='average')
11 0 6.5
12 1 1.0
13 2 6.5
14 3 4.5
15 4 3.0
16 5 2.0
17 6 4.5
18 dtype: float64
(3)method='max'
1 >>> obj
2 0 7
3 1 -5
4 2 7
5 3 4
6 4 2
7 5 0
8 6 4
9 dtype: int64
10 >>> obj.rank( method='max')
11 0 7.0
12 1 1.0
13 2 7.0
14 3 5.0
15 4 3.0
16 5 2.0
17 6 5.0
18 dtype: float64
(4)method='first'
1 >>> obj
2 0 7
3 1 -5
4 2 7
5 3 4
6 4 2
7 5 0
8 6 4
9 dtype: int64
10 >>> obj.rank( method='first')
11 0 6.0
12 1 1.0
13 2 7.0
14 3 4.0
15 4 3.0
16 5 2.0
17 6 5.0
18 dtype: float64
pandas rank()函数简介的更多相关文章
- pandas 常用函数整理
pandas常用函数整理,作为个人笔记. 仅标记函数大概用途做索引用,具体使用方式请参照pandas官方技术文档. 约定 from pandas import Series, DataFrame im ...
- 【转载】pandas常用函数
原文链接:https://www.cnblogs.com/rexyan/p/7975707.html 一.import语句 import pandas as pd import numpy as np ...
- linux进程编程:子进程创建及执行函数简介
linux进程编程:子进程创建及执行函数简介 子进程创建及执行函数有三个: (1)fork();(2)exec();(3)system(); 下面分别做详细介绍.(1)fork() 函数定 ...
- Linux Shell系列教程之(十五) Shell函数简介
本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell系列教程 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高 ...
- 【液晶模块系列基础视频】4.5.X-GUI图形界面库-进度条等函数简介
[液晶模块系列基础视频]4.5.X-GUI图形界面库-进度条等函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址 ...
- 【液晶模块系列基础视频】4.4.X-GUI图形界面库-画tab函数简介
[液晶模块系列基础视频]4.4.X-GUI图形界面库-画tab函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址 ...
- 【液晶模块系列基础视频】4.3.X-GUI图形界面库-画box函数简介
[液晶模块系列基础视频]4.3.X-GUI图形界面库-画box函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址 ...
- 【液晶模块系列基础视频】4.2.X-GUI图形界面库-画矩形函数简介
[液晶模块系列基础视频]4.2.X-GUI图形界面库-画矩形函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址: ...
- 【液晶模块系列基础视频】4.1.X-GUI图形界面库-画线画圆等函数简介
[液晶模块系列基础视频]4.1.X-GUI图形界面库-画线画圆等函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地 ...
- [转]SQLITE3 C语言接口 API 函数简介
SQLITE3 C语言接口 API 函数简介 说明:本说明文档属作者从接触 SQLite 开始认识的 API 函数的使用方法, 由本人翻译, 不断更新. /* 2012-05-25 */ int sq ...
随机推荐
- Lattice高速下载器HW-USBN-2B 如何申请 license
如果用的芯片不是停产老旧芯片,Diamond programmer 是不需要 license 绑定支持的. 但是有些需要编程老旧的芯片.需要安装 Diamond programmer stand-al ...
- json文件读取并转换成为字典python
# JSON到字典转化 f2 = open('info.json', 'r') info_data = json.load(f2) print(info_data) # 显示数据类型 print(ty ...
- flutter 移动应用程序中打开URL
url_launcher: ^6.2.5 在Flutter中,url_launcher库是用于在移动应用程序中打开URL的常用工具.它允许你通过调用系统的浏览器或其他应用程序来打开指定的URL,比 ...
- 力扣569(MySQL)-员工薪水中位数(困难)
题目: 写一个SQL查询,找出每个公司的工资中位数,以任意顺序返回结果表.查询结果个数如下所示. 输出结果如下: 解题思路: 中位数:位于集合正中间的元素.当数据总书为奇数时,最中间的数就是中位数, ...
- HarmonyOS NEXT应用开发之Tab组件实现增删Tab标签
介绍 本示例介绍使用了Tab组件实现自定义增删Tab页签的功能.该场景多用于浏览器等场景. 效果图预览 使用说明: 点击新增按钮,新增Tab页面. 点击删除按钮,删除Tab页面. 实现思路 设置Tab ...
- Serverless 架构落地实践及案例解析
简介: 技术演进的本质是更好服务业务,传统开发方式使企业花费更多的精力打磨底层技术细节,而 Serverless 架构就是让开发者专注业务实现从而创造更大的业务价值. 作者 | 丹坤 整理 | 徐 ...
- Service Mesh 从“趋势”走向“无聊”
简介: 过去一年,阿里巴巴在 Service Mesh 的探索道路上依旧扎实前行,这种坚定并非只因坚信 Service Mesh 未来一定是云计算基础技术的关键组成部分,还因需要借这一技术趋势去偿还过 ...
- Flagger on ASM——基于Mixerless Telemetry实现渐进式灰度发布系列 3 渐进式灰度发布
简介: 作为CNCF[成员](https://landscape.cncf.io/card-mode?category=continuous-integration-delivery&grou ...
- Hologres如何支持超高基数UV计算(基于roaringbitmap实现)
简介: 本文将会介绍Hologres基于roaringbitmap实现超高基数的UV计算 RoaringBitmap是一种压缩位图索引,RoaringBitmap自身的数据压缩和去重特性十分适合对于大 ...
- Dubbo-Admin 正式支持 3.0 服务治理
简介:Dubbo 相信大家并不陌生,是一款微服务开发框架,它提供了 RPC 通信与微服务治理两大关键能力.大家在日常开发中更多使用的是 Dubbo 提供的 RPC 通信这一部分能力,而对其提供的服务 ...