Series和DataFrame通过rank将平均排名分配到每个组来打破平级关系。
1. rank()就表示这个数在原来的排名,如果遇到两个数相等,就取这两个数排名的平均值
obj = pd.Series([5, 9, 2, 10, 9, 2, 0])
print(obj.rank())
结果:
0 4.0
1 5.5
2 2.5
3 7.0
4 5.5
5 2.5
6 1.0
2. rank(method=‘first’) 就是根据数字本身正常排序,不计算其平均排名
print(obj.rank(method='first'))
结果:
0 4.0
1 5.0
2 2.0
3 7.0
4 6.0
5 3.0
6 1.0
dtype: float64
3.
print(obj.rank(ascending=False))#按降序进行平均排名
print(obj.rank(method='max'))#不平均排名,对数字相同的使用最大排名进行统一排名
print(obj.rank(method='min'))#不平均排名,对数字相同的使用最小排名进行统一排名
print(obj.rank(ascending=False, method='max'))#不平均排名,降序排名,并且按照相同数字使用最大排名进行统一排名
结果:
0 4.0
1 2.5
2 5.5
3 1.0
4 2.5
5 5.5
6 7.0
dtype: float64
0 4.0
1 6.0
2 3.0
3 7.0
4 6.0
5 3.0
6 1.0
dtype: float64
0 4.0
1 5.0
2 2.0
3 7.0
4 5.0
5 2.0
6 1.0
dtype: float64
0 4.0
1 3.0
2 6.0
3 1.0
4 3.0
5 6.0
6 7.0
dtype: float64