Pandas rank()函数排名的用法与解释

之前搜关于pandas rank()函数的帖子,好几个大哥都是照搬书,当然也有一些大神直接一顿操作+截图。我结合了书还有自己的理解,希望没有错误,也希望和我一样的新手能看懂。谢谢!!

1. rank()

默认情况下,rank() 通过将平均排名分配到每个组打破平级关系。也就是说,如果有两组数值一样,那他们的排名将会被加在一起再除2.
obj=pd.Series([3,5,-1,0,5,6])
print(obj)
print(obj.rank())
得到如图:

我们自己手动排一下,-1,0,3,5,5,6.所以-1是第1名,0是第2名,3是第3,5是第4,5是第5,6是第6. 两个5的排名分别是4和5。所以在默认的排法。他们都是4.5(平均数)。

2. rank(method=“first”)

####这种情况下没有小数点,因为出现同样的数字的时候,我们按先看到谁谁就是老大的原则。书面文字是:排名也可以根据他们在数据中的观察顺序进行分配:
在这里插入图片描述

因此,同样两个5,从上到下,我们先看到 index=1 的那个5,所以他排名要优先于 index=4 的那个5.

3. rank(method=“min”)与 “dense”

这两个有点类似但是还是有区别,我们导入一个新的obj。
obj=pd.Series([3,5,-1,0,5,5,6])
print(obj)
obj.rank(method="min")

在这里插入图片描述

前面很好理解,同时出现3个5,我们把它用最小的号码排名,那就是都并列为4.但是因为这3个5占了4,5,6三个坑位,下一个就只能为排名7了。
dense,翻译过来的意思就是稠密,它与min唯一的区别就是,重复的不会占坑位,因此,3个5还是排第4,6可以排第五名了,这个也是比较常用的排名,比如班级名次,有几个人并列第n名,不影响紧跟着的n+1名。所以dense总是连续的,即组间排名总是+1.不过只是会有重复的而已。

在这里插入图片描述

4. rank(method=“max”)

类似于min的占坑位,3个5占4,5,6三个坑位时,min取4,在method为“max”时就取6了,其他一样。

在这里插入图片描述

当然还可以顺序反过来,用 ascending=False

在这里插入图片描述

5 method=“average”

同样地,3个5占4,5,6三个坑, method=“average“就是取这三个的平均数(4+5+6)/3,后面的数还是排在坑外为7.

在这里插入图片描述

  • 19
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值