刚开始学习《利用Python进行数据分析》这本书,当学习到对Serises和Dataframe进行排名的时候,有些疑惑,去网上搜索了很多关于这方面的解释,要么就是一两句带过,要么就是照搬书上的例子与结果,把我们这些刚入门的小白当成了高手,所以我打算自己认真的写一篇关于rank函数的简要解释说明。这是我第一次在CSDN上写博客,如果有不对的地方,可以留言,我会认真改正。页面做的很简单,望大家谅解。
Rank()函数
Rank也就是所说的”排名“,是指对数组从1到有效数据点总数分配名次的操作。
默认情况下,rank通过将平均排名分配到每个组来打破平级关系:
初始化一个序列
import pandas as pd
obj = pd.Series([7,-5,7,4,2,0,4])
obj
运行结果:
0 7
1 -5
2 7
3 4
4 2
5 0
6 4
dtype: int64
执行默认rank()操作
obj.rank()
运行结果:
0 6.5
1 1.0
2 6.5
3 4.5
4 3.0
5 2.0
6 4.5
dtype: float64
运行结果分析:
元素 | 索引 | 排名 |
---|---|---|
-5 | 1 | #1 |
0 | 5 | #2 |
2 | 4 | #3 |
4 | 3 | #4 |
4 | 6 | #5 |
7 | 0 | #6 |
7 | 2 | #7 |
根据上面的表格可以看出,索引0对应的元素排名为6,但是使用rank()会对排名求平均值,也就是说有N歌相同的元素,排名会相加并除以N,所以说索引0对应的元素最终排名为6.5;索引1对应的元素排名为1,所以它对应的排名值为1.0,以此类推得出上述运行结果。