pandas里的rank()可以进行排位
from pandas import Series
obj = Series([7, -5, 7, 4, 2, 0, 4])
print(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
其排位的原理是:先对obj排序,得到对应排位
[-5, 0, 2, 4, 4, 7, 7]
| | | | | | |
1 2 3 4 5 6 7
但是rank默认是算平均排位,所以
4的排位是(4+5)/2=4.5
7的排位是(6+7)/2=6.5
其他同理,所以有
0 6.5 -->7
1 1.0 -->-5
2 6.5 -->7
3 4.5 -->4
4 3.0 -->2
5 2.0 -->0
6 4.5 -->4
dtype: float64
可以通过关键字method得到其他排位方式method=‘first’,‘max’等
print(obj.rank(method='first'))
0 6.0
1 1.0
2 7.0
3 4.0
4 3.0
5 2.0
6 5.0
dtype: float64