pandas.DataFrame.rank #

数据框。排名( axis = 0 , method = 'average' , numeric_only = False , na_option = 'keep' , ascending = True , pct = False ) [来源] #

计算沿轴的数值数据排名(1 到 n)。

默认情况下,为相等的值分配一个排名,该排名是这些值的排名的平均值。

参数
{0 或 'index', 1 或 'columns'}, 默认 0

直接排名的索引。对于系列,此参数未使用,默认为 0。

方法{'average', 'min', 'max', 'first', 'dense'}, 默认 'average'

如何对具有相同值(即平局)的记录组进行排名:

  • 平均:该组的平均排名

  • min:组中最低排名

  • max:组内最高排名

  • 第一:按照它们在数组中出现的顺序分配排名

  • 密集:类似于“min”,但组之间的等级总是增加 1。

numeric_only布尔值,默认 False

对于 DataFrame 对象,如果设置为 True,则仅对数字列进行排名。

版本 2.0.0 中更改:默认值为numeric_onlynow False

na_option {'keep', 'top', 'bottom'}, 默认 'keep'

如何对 NaN 值进行排序:

  • keep:将 NaN 排名分配给 NaN 值

  • top:将最低排名分配给 NaN 值

  • 底部:将最高排名分配给 NaN 值

升序布尔值,默认 True

元素是否应按升序排列。

pct布尔值,默认 False

是否以百分位形式显示返回的排名。

返回
与调用者类型相同

返回以数据排名作为值的 Series 或 DataFrame。

也可以看看

core.groupby.DataFrameGroupBy.rank

每组内的值的排名。

core.groupby.SeriesGroupBy.rank

每组内的值的排名。

例子

>>> 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

平局被分配为该组排名的平均值(默认情况下)。

>>> s = pd.Series(range(5), index=list("abcde"))
>>> s["d"] = s["b"]
>>> s.rank()
a    1.0
b    2.5
c    4.0
d    2.5
e    5.0
dtype: float64

以下示例显示了该方法在使用上述参数时的行为方式:

  • default_rank:这是在不使用任何参数的情况下获得的默认行为。

  • max_rank:设置具有相同值的记录使用最高排名进行排名(例如:由于“cat”和“dog”都位于第二和第三位置,因此分配排名3。)method = 'max'

  • NA_bottom:选择,如果有 NaN 值的记录,则将其放置在排名的底部。na_option = 'bottom'

  • 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