函数形式:
DataFrame.rank(axis=0, method='average', numeric_only=NoDefault.no_default, na_option='keep', ascending=True, pct=False)
沿轴计算数值数据等级(1到n)。默认情况下,相等的值被分配一个等级,这个等级是这些值的等级的平均值。
- axis:直接排名索引。
-
method:如何对具有相同值(即平局)的记录组进行排名:
average:组的平均排名
min:组中的最低排名
max:组中的最高排名
first:按照它们在数组中出现的顺序分配的等级
dense:类似于“min”,但组间排名总是增加 1
- numeric_only:对于DataFrame对象,如果设置为True,则只对数字列排序。
- na_option:如何对NaN值进行排序。top:给NaN值分配最低等级;bottom:给NaN值赋最高等级;keep:给NaN值赋NaN
- ascending:元素是否应该按升序排列。
- pct:是否以百分比形式显示返回的排名。
返回值:返回一个Series或DataFrame的值。
来,上例子:
>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(data={'Animal': ['cat', 'penguin', 'dog',
... 'spider', 'snake'],
... 'Number_legs': [4, 2, 4, 8, np.nan]})
>>> df
Animal Number_legs
0 cat 4.0
1 penguin 2.0
2 dog 4.0
3 spider 8.0
4 snake NaN
下面的示例展示了该方法如何处理上述参数:
- default_rank:这是不使用任何参数获得的默认行为
- max_rank:设置方法= 'max'有相同值的记录使用最高的排名(例如:因为猫和狗都在第二和第三位,排名均为3。)
- NA_bottom: 选择na_option = 'bottom',如果有带有NaN值的记录,它们将被放在排名的底部。