Python数据分析-pandas的rank函数助你轻松实现排序功能

数据分析笔记--pandas的排序处理 import pandas as pdimport numpy as np1.按照索引排序Series的索引排序利用sort_index()方法,默认是按照升序排序,ascending=True可以添加ascending=False的参数,表示降序排序DataFrame的索引排序也是通过sort_index()进行排序,默认按照列的方向进行排序--axis=0,并按照升序排序--ascending... 阅读详情

 更多文章,可通过微信公众号:Excel办公小技巧  查看

  “ 用过sql中的row_number函数,习惯了他的方便,那么在pandas处理数据时,有没有类似的函数用来排序呢,当然也有,比如rank函数。”

rank(axis=0, method='average', numeric_only=None,      na_option='keep', ascending=True, pct=False)

    默认情况下:axis=0表示按索引排序;ascending=True排序按升序排列;pct=False表示不输出百分比;na_option='keep'表示空值不做处理。

    下面将通过数据来学习下rank函数下各参数作用:

01 method:你想怎么排

    更改参数method的可选项,其他默认参数不更改:

  • first:表示按数值大小排列,如果数值相同时,按出现先后排序。如1,2,3,4,5,...,类似SQL中的row_number函数;

  • min:表示按数值大小排列,如果数值相同时,序号相同,但后面的序号仍按数值数目顺延,如1,2,2,4,5,...,类似SQL中的rank函数;

  • dense:表示按数值大小排列,如果数值相同时,序号相同,同时后面的序号不受影响,如1,2,2,3,4,...,类似SQL中的dense_rank函数;

data['first']=data['数量'].rank(method='first' )data['min']=data['数量'].rank(method='min' )data['dense']=data['数量'].rank(method='dense')

结果如下:

另外两个可选项,method='max'时,相同的数值,按最大的序号输出。可以理解成,在first排序结果的基础上,数值相同时,两个数值都按最大序号输出;而method='average'时,两个数值按对应序号的均值输出。

02 ascending:谁小谁有理?

    上面介绍method我们默认是升序排列,那么如果数量表示销售完成的订单数时,当然是完成的多的才要排前面,所以,ascending=False时,降序排列。

data['降序']=data['数量'].rank(method='min',ascending=False)

03 na_option:别把数据算丢了!

    默认情况下,na_option='keep',空值未被考虑在内,那么,如果数量表示客服投诉数量时,数量为空的应该是排名最好的。因此,当na_option='top',表示空值排最前,na_option='bottom',表示空值排最后。

data['top']=data['数量'].rank(method='min',na_option='top')data['bottom']=data['数量'].rank(method='min',na_option='bottom')

结果如下:

04 pct:算算分布?

    pct默认=False,想输出数值所占的分布情况时,pct=True即可。

data['pct']=data['数量'].rank(method='min',pct=True)

结果如下:

关于Python中rank()函数的理解 刚开始学习《利用Python进行数据分析》这本书,当学习到对Serises和Dataframe进行排名的时候,有些疑惑,去网上搜索了很多关于这方面的解释,要么就是一两句带过,要么就是照搬书上的例子与结果,把我们这些刚入门的小白当成了高手,所以我打算自己认真的写一篇关于rank函数的简要解释说明。这是我第一次在优快云上写博客,如果有不对的地方,可以留言,我会认真改正。页面做的很简单,望大家谅解。 ... 阅读详情

相关推荐

Pandas排序和排名(四种排名方法)

Pandas用rank排名,有四种排序方法,默认使用average在相等分组中,为各个值分配平均排名值;使用min和max在相等分组中的最小和最大排名值;使用first按值在原始数据中出现顺序分配排名值。Series和DataFrame支持索引和元素值排序,分别用sort_index和sort_values。

小龙在线 2324

unity 根据Transform里子对象的变量值大小顺序,对当前Transform的UI层级进行排序

添加链接描述 传入一个 list , Card 类在在每个子对象身上挂着 /// <summary> /// 对list子对象进行排序 /// m_iCardValue => 为 card 类里的变量 /// </summary> int m_iChildIndex = 0; void SortCards(List<Card> m_sCard) {

红叶 967

【SOC估算】基于EKF与神经网络融合的锂电池SOC高精度估计及Matlab实现

本文探讨了基于EKF与神经网络融合的锂电池SOC高精度估计方法。通过结合扩展卡尔曼滤波(EKF)的模型驱动优势和神经网络的数据驱动学习能力,实现了对电池荷电状态(SOC)的精准预测。Matlab仿真验证了该混合算法在各种工况下均能显著降低估计误差,提升电池管理系统性能。

play7的博客 694

Pandas中的数据排序(八)

1、两种类型的数据排序 (1)Series的排序: Series.sort_values(ascending=True, inplace=False) 参数说明: ascending:默认为True升序排序,为False降序排序 inplace:是否修改原始Series (2)DataFrame的排序: DataFrame.sort_values(by, ascending=True, inp...

小龙龙品牌的博客 5957

Windows防火墙服务异常修复指南:0x80070422与0x6D9报错实战处理

本文针对Windows防火墙服务异常导致的0x80070422与0x6D9报错,提供了从基础到进阶的实战修复指南。核心是通过services.msc服务管理器检查并修复Windows Firewall服务,包括设置启动类型、检查依赖服务等关键步骤。同时介绍了当基础方法失效时,如何使用命令行工具、系统文件检查器(SFC/DISM)以及排查组策略与第三方软件冲突等深度解决方案,帮助用户彻底解决防火墙服务无法启动或访问的问题。

m9n0o的博客 542

信道估计准则演进:从LS、MMSE到LMMSE的工程权衡

本文深入探讨了信道估计准则的演进历程,从LS、MMSE到LMMSE的工程权衡。通过对比分析三大经典算法的数学本质、工程实现及适用场景,揭示了在计算复杂度、实时性和性能之间的关键取舍。文章结合4G/5G基站项目实战经验,提供了算法选型的三维决策模型和前沿发展建议,为无线通信系统设计提供实用指导。

weixin_29327525的博客 280

Pandas 排序——《Python数据分析库Pandas》

除了按照列值、索引进行排序外,Pandas还允许我们传入自定义的排序函数。这使得我们可以根据特定的业务需求进行排序。# 自定义排序函数:按照姓名的长度排序# 使用自定义函数进行排序在这个例子中,我们定义了一个自定义排序函数,它返回姓名的长度。然后,我们将这个函数作为key参数传递给函数,实现了按照姓名长度进行排序。Pandas提供了丰富而强大的排序功能,使得我们能够轻松地处理和分析各种数据结构。通过掌握这些排序方法,我们可以更加高效地进行数据预处理、探索性数据分析和数据挖掘工作。

Python老吕的博客 1890

Unity WebGL发布避坑指南:从内存设置到字体打包,一次搞定所有常见问题

本文详细解析Unity WebGL发布的完整流程,从内存设置到字体打包,提供全面的避坑指南。涵盖关键检查清单、内存与性能优化配置、资源处理专项优化及平台适配技巧,帮助开发者高效解决常见问题,确保项目顺利发布。

weixin_28693309的博客 147

pandas数据排序与排名:实现复杂的数据分析需求

你是否还在为Excel中繁琐的排序操作而烦恼?是否在处理多条件排序时感到力不从心?是否想快速计算销售业绩的排名却不知从何下手?本文将带你一文掌握pandas中的数据排序与排名技巧,轻松应对复杂的数据分析需求。读完本文后,你将能够:使用单条件和多条件对DataFrame进行排序、处理缺失值在排序中的位置、对数据进行多种方式的排名、以及在分组数据中应用排序和排名功能。 ## 排序基础:sort_va...

gitblog_00278的博客 806

27、物联网中的量子密钥分发:安全通信新范式

本文探讨了物联网(IoT)快速发展所带来的安全挑战,并提出量子密钥分发(QKD)作为应对新兴威胁的新范式。文章详细介绍了QKD的基础原理、BB84协议的实现流程以及其在物联网中的应用前景,同时强调了安全专业人员提升技能、制定标准化指南以及跨学科合作的重要性。通过利用量子力学特性,QKD能够提供更高的通信安全性,抵御量子计算等未来威胁,为物联网的安全发展提供保障。

tequila的博客 155

64.qt quick-qml使用高德地图插件实现V2版本(新增:位置搜索、路径规划、轨迹编辑等)

qt quick-qml高德地图插件(新增:位置搜索、路径规划、轨迹编辑等) Qt地图插件,使用简单方便,不用浏览器内核,运行高效迅速 跨平台支持,(Qt Windows(MinGW, MSVC)\Linux(桌面、嵌入式)\Android\IOS\等) 在线更新瓦片地图下载,并且支持缓存保存离线地图实现.........

抵抗时间扭曲,坚持做一件有意义的事 6127

python数据处理 DataFrame排序与排名

pandas的DataFrame极大地简化了数据分析过程中一些烦琐操作,它是一个表格型的数据结构, 每一列代表一个变量,而每一行则是一条记录。简答地说,DataFrame是共享同一个index 的Series的集合。DataFrame数据的排序分为三类:   对于索引排序,涉及到对行的索引和对列的索引进行升序或者降序排序函数df.sort_index(axis= , ascending= , inplace=),需要特别注意这三个参数。axis表示对行的索引排序,还是对列的索引进行排序;ascending表

bingbangx的博客 9458

【PowerBI专栏】PowerBI导入MYSQL数据库

本文介绍了在PowerBI中连接MySQL数据库的方法。首先需要下载并安装MySQL官方.NET连接驱动(推荐8.4.0版本),安装完成后重启PowerBI。连接时需填写服务器IP和数据库名称等必填参数。文章详细说明了连接配置步骤,包括账户设置、数据表选择以及可能遇到的数据格式转换问题处理。最后指导用户完成数据清洗后进入PowerPivot进行后续计算。特别提醒最新9.4版本可能存在兼容性问题,建议使用稳定的8.4版本连接器。

技术与管理的平衡木- 689

pylibcudf.sorting 完全指南:cuDF GPU 排序、排名与 Top-K API 深度解析

本文系统讲解 cuDF 的底层 Python API 模块 `pylibcudf.sorting`,它是对 C++ libcudf 排序内核的直接绑定,为 GPU 上的表排序(`sort`)、索引排序(`sorted_order`)、按键排序(`sort_by_key`)、分段排序(`segmented_sort_by_key`)、排名(`rank`)、排序状态检查(`is_sorted`)与 T

gitblog_00466的博客 217

西门子博图v16安装密钥提示报错:CryptAcquireContext MS_DEF_PROV Error of containger opening...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 3297

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

灰色关联分析实战:从原理到应用,掌握小样本数据分析利器

在数据分析领域,相关性分析是探索变量间关系的基础技术。传统方法如皮尔逊相关系数要求数据满足线性、正态分布等严格假设,但在处理小样本、贫信息或趋势复杂的系统时往往受限。灰色关联分析作为一种非参数方法,其核心原理在于衡量数据序列间几何形状的相似性,而非严格的线性关系。它通过计算关联系数和关联度,量化各因素与目标序列的趋势同步程度,技术价值在于对数据分布要求低、计算直观、结果易于解读。这一特性使其在指标筛选、因素排序、方案择优等场景中具有独特优势,尤其适用于样本量有限、信息不完全的灰色系统分析。本文以数学建模和工

weixin_34405557的博客 359

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【python】rank函数

rank函数中的参数method有四个取值:无参,"min","max","first" 无参 相同排名下,取平均值进行排名 ser=pd.Series([3,2,0,3],index=list('abcd')) print(ser) ser=ser.rank() #默认为average print(ser) #输出 a 3 b 2 c 0 d 3 dtype: int64 a 3.5 b 2.0 c 1.0 d 3.5 dtype: float64

lhyhaiyan的博客 9981

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Part 8:Pandas数据排序【Series和DataFrame的排序操作函数】

【代码】Part 8:Pandas数据排序【Series和DataFrame的排序操作函数】

qq_46044325的博客 1413

python Pandas.rank() 排名函数详解

【代码】Pandas.rank() 函数详解。

small__roc的博客 1万+

Series 和 DataFrame 中的sort_index 方法

Series 的 sort_index(ascending=True) 方法可以对 index 进行排序操作,ascending 参数用于控制升序或降序,默认为升序。 若要按值对 Series 进行排序,当使用 .order(na_last=True, ascending=True, kind='mergesort') 方法,任何缺失值默认都会被放到 Series 的末尾。 在 Dat

You_are_my_dream的博客 1万+

Pandas系列(七)Pandas数据排序

文章目录读取数据Series的排序:DataFrame的排序:单列排序多列排序分别指定升序和降序 读取数据   读取的数据如下: Series的排序: Series.sort_values(ascending=True, inplace=False)   参数说明: ascending:默认为True升序排序,为False降序排序。 inplace:是否修改原始Series。 DataFrame的排序: DataFrame.sort_values(by, ascending=True, inp

小小何先生的学习之旅 8273

pandas 排序之 sort_index

排序之 sort_index sort_index对行或列索引进行排序。 Series的 sort_index(ascending=True)方法可以对index进行排序操作,ascending参数用于控制升序或降序,默认为升序。 在 DataFr...

weixin_38477351的博客 3544

常用的一些python数据分析函数-记录

rank()是 Pandas 中的一个函数,用于为数据进行排名。它会为每个元素分配一个排名值,其中排名值越小表示越靠前。在使用 .rank()函数时,可以使用method和ascending参数来调整排名的方法和排序顺序。methodaverageminmaxfirst以下是一个示例代码,展示如何使用methodTrueFalse以下是一个示例代码,展示如何使用ascending。

yeungf的博客 2349

Python函数:rank()

函数形式: DataFrame.rank(axis=0, method='average', numeric_only=NoDefault.no_default, na_option='keep', ascending=True, pct=False) 沿轴计算数值数据等级(1到n)。默认情况下,相等的值被分配一个等级,这个等级是这些值的等级的平均值。 axis:直接排名索引。 ...

Ajdidfj的博客 6765

Python pandas的rank()函数

图2,跳跃排名中,李四和王五的成绩都为30,且排名都为2,但后面同学刘三、赵柳都按其出现位置进行了排名,排名分别为4和5,整体的名次,产生了跳跃,没有名次为第3的了,整体名次为:1,2,2,4,5。图2,密集排名中,虽然李四和王五的成绩相同,排名相同,但后面刘三、赵柳同学都按次序依次进行了排名(+1),其整体的名次没有跳跃,变为1,2,2,3,4。图2,顺序排名中,李四和王五成绩都为30,但是李四在前,所以李四排名为2,而王五排名为3,整体的名次为1,2,3,4,5。

m0_75101340的博客 1188

python pandas rank()详解

目录 1函数原型 2 各参数的作用 1.1 axis 1.2 method 3ascending 4na_option 5pct名次是否为百分数 6 实例讲解 6.1 DataFrame 原始数据 6.1默认情况下 6.2根据值在原数据中出现的顺序排名 6.3为各组分配一个最小排名 6.3为各组分配一个最大排名 6.4为各组分配一个稠密度计算后的排名 ...

m0_37813354的博客 1万+
上一篇: Python处理Excel-使用pandas处理时间格式数据
下一篇: 像Excel一样使用Python,pandas的pivot_table实现数据透视
TheLittlePython
博客等级 码龄9年 47粉丝 75原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值