rank函数python_Pythonpandas.DataFrame.rank函数⽅法的
使⽤
DataFrame.rank(self: ~FrameOrSeries, axis=0, method: str = 'average', numeric_only: Union[bool, NoneType] =
None, na_option: str = 'keep', ascending: bool = True, pct: bool = False) → ~FrameOrSeries
计算沿轴的数值数据等级(1到n)。
默认情况下,为相等的值分配⼀个等级,该等级是这些值的等级的平均值。
参数:axis:{0或'index',1或'columns'},默认0
直接排名的索引。
method:{'average','min','max','first','dense'},
默认为'average'
如何对具有相同值(即ties)的记录组进⾏排名:
1) average:组的平均等级
2) min:组中最低的排名
3) max:组中最⾼等级
4) first : 按排列顺序排列,依次排列
5) dense:类似于‘min’,但组之间的排名始终提⾼1
numeric_only:bool, 可选
对于DataFrame对象,如果设置为True,
则仅对数字列进⾏排名。
na_option:{'keep','top','bottom'},
默认为'keep'
如何对NaN值进⾏排名:
1) keep:将NaN等级分配给NaN值
2) top:如果升序,则将最⼩等级分配给NaN值
3) bottom:如果升序,则将最⾼等级分配给NaN值。
ascending:bool,默认为True
元素是否应该按升序排列。rank函数怎么用
pct:bool,默认为False
是否以百分⽐形式显⽰返回的排名。
返回值:与调⽤者相同的类型
返回以数据等级作为值的Series或DataFrame。
例⼦>>> 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:设置method = 'max'具有相同值的记录将使⽤最⾼排名进⾏排名(例如:由于'cat'和'dog'都位于第⼆和第三位置,因此分配了rank 3。)
NA_bottom:选择na_option = 'bottom',如果存在具有NaN值的记录,则将它们放在排名的底部。
pct_rank:设置pct = True时,排名以百分等级表⽰。
>>> df['default_rank'] = df['Number_legs'].rank()
>>> df['max_rank'] = df['Number_legs'].rank(method='max')
>>> df['NA_bottom'] = df['Number_legs'].rank(na_option='bottom')
>>> df['pct_rank'] = df['Number_legs'].rank(pct=True)
>>> df
Animal Number_legs default_rank max_rank NA_bottom pct_rank
0 cat 4.0 2.5 3.0 2.5 0.625
1 penguin 2.0 1.0 1.0 1.0 0.250
2 dog 4.0 2.5 3.0 2.5 0.625
3 spider 8.0 4.0 4.0 4.0 1.000
4 snake NaN NaN NaN 5.0 NaN