rank( )
rank函数返回从小到大排序的下标
1、默认情况下,rank是通过“为各组分配一个平均排名”的方式破坏平级关系的
In [120]:obj = pd.Series([7,-5,7,4,2,0,4])
In [121]:obj.rank()
Out [121]:
0 6.5
1 1.0
2 6.5
3 4.5
4 3.0
5 2.0
6 4.5
dtype: float64
2、根据值在原数据中出现的顺序排名
In [122]:obj.rank(method='first')
Out [122]:
0 6.0
1 1.0
2 7.0
3 4.0
4 3.0
5 2.0
6 5.0
dtype: float64
3、按降序进行排名
In [123]:obj.rank(ascending=False, method='max')
Out [123]:
0 2.0
1 7.0
2 2.0
3 4.0
4 5.0
5 6.0
6 4.0
dtype: float64
4、若对DataFrame进行排序,则可根据axis指定要进行排序的轴
In [136]: frame=pd.DataFrame({'b':[5,7,-3,2],'a':[0,1,0,1],'c':[-2,5,8,-3]})
In [137]: frame
Out[137]:
a b c
0 0 5 -2
1 1 7 5
2 0 -3 8
3 1 2 -3
In [138]: frame.rank(axis=0)
Out[138]:
a b c
0 1.5 3.0 2.0
1 3.5 4.0 3.0
2 1.5 1.0 4.0
3 3.5 2.0 1.0
In [139]: frame.rank(axis=1)
Out[139]:
a b c
0 2.0 3.0 1.0
1 1.0 3.0 2.0
2 2.0 1.0 3.0
3 2.0 3.0 1.0
method方法的选项
Tables | Are |
---|---|
average | 默认:在相等分组中,为各个值分配平均排名 |
min | 使用整个分组的最小排名 |
max | 使用整个分组的最大排名 |
first | 按值在原始数据中的出现顺序分配排名 |
转载地址:
《利用Python进行数据分析》