Python—Pandas学习之【排名rank】

本文探讨了Python的Pandas库中Series和DataFrame的`rank`操作。在Series中,介绍了默认的升序排名,以及如何处理相同值的排名,包括使用'method'参数设置为'first'或'max'来避免中值排名。对于DataFrame,解释了默认按行(axis=0)进行的排名,并说明如何通过设置axis=1来进行列(axis=1)的排名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Series

默认从小到大进行排名

在这里插入图片描述
对于obj来说,最小的是-2,因此-2的排名是1;第二小的是0,因此0的排名是2;obj中出现两个3,他们两个的排名分别是4和5,因此取中值排名为4.5。

为了避免出现中值排名,可以有以下几种做法。
1. method = 'first’
相同元素按照出现的先后顺序决定排名。
在这里插入图片描述
2. method = 'max’
相同元素都给最大排名
在这里插入图片描述

DataFrame

默认是axis = 0,即固定其他轴,沿着0轴排名
在这里插入图片描述
如果是想沿着columns轴进行排名,需要声明 axis=1
在这里插入图片描述

Python pandas是一种优秀的数据处理和分析的开发库,可以实现各种数据排名操作,排名通常指定定量变量每组的排名。下面就介绍一下python pandas排名的相关知识。 在Python Pandas中,我们可以使用rank()函数来对数据进行排名操作。rank()函数有以下几个参数: - axis:指定对哪个轴进行排名,0表示行,1表示列,默认为0。 - method:指定排名方法,average、min、max、first、dense,其中average为默认值。average表示采用平均排名,如果有两个数据相等,则排名取平均值。min表示取最小排名,max表示取最大排名,first表示按照出现顺序排名,dense表示一组中有多个数据和它排名相等时,排名都会取最小值。 - ascending:指定排名的升序或降序(默认为True,即升序)。 一个常见的例子是对DataFrame中的某一列数据进行排名操作: ``` import pandas as pd data = { 'name':['A','B','C','D','E'], 'score':[60,70,80,90,80] } df = pd.DataFrame(data) df['rank'] = df['score'].rank(method='min',ascending=False) print(df) ``` 输出结果为: ``` name score rank 0 A 60 5.0 1 B 70 4.0 2 C 80 2.5 3 D 90 1.0 4 E 80 2.5 ``` 这里我们对score列进行了排名操作,并将排名结果存入新的一列rank中。可以看到,score为60的数据排名最后,score为90的数据排名第一,score为80的数据排名第2.5名和第2.5名。 除了对DataFrame中的某列进行排名,还可以使用groupby函数对数据进行分组操作,然后再对每组数据进行排名: ``` import pandas as pd data = { 'group':['A','A','B','B','C'], 'score':[60,70,80,90,80] } df = pd.DataFrame(data) df['rank'] = df.groupby('group')['score'].rank(method='dense',ascending=False) print(df) ``` 输出结果为: ``` group score rank 0 A 60 2.0 1 A 70 1.0 2 B 80 2.0 3 B 90 1.0 4 C 80 1.0 ``` 这里我们根据group列对数据进行分组,然后分别对每组的score列进行排名操作,并将排名结果存入新的一列rank中。可以看到,group为A的数据中,score为60的数据排名第二,score为70的数据排名第一。group为B的数据中,score为80的数据排名第二,score为90的数据排名第一。group为C的数据中,score为80的数据排名第一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值