之前搜关于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")