maxframe.dataframe.Series.rank#

Series.rank(axis=0, method='average', numeric_only=False, na_option='keep', ascending=True, pct=False)#

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

默认情况下,相等的值会被赋予其排名的平均值。

参数:
  • axis ({0 or 'index', 1 or 'columns'}, default 0) -- 用于指定排序方向的索引。

  • method ({'average', 'min', 'max', 'first', 'dense'}, default 'average') -- 如何对具有相同值(即并列)的记录组进行排名: * average: 组的平均排名 * min: 组中的最低排名 * max: 组中的最高排名 * first: 按照记录在数组中出现的顺序分配排名 * dense: 类似 'min',但组间的排名总是增加1。

  • numeric_only (bool, optional) -- 对于 DataFrame 对象,如果设置为 True,则仅对数值列进行排名。

  • na_option ({'keep', 'top', 'bottom'}, default 'keep') -- 如何对 NaN 值进行排名: * keep: 将 NaN 排名赋给 NaN 值 * top: 将最低排名赋给 NaN 值 * bottom: 将最高排名赋给 NaN 值

  • ascending (bool, default True) -- 是否应按升序对元素进行排名。

  • pct (bool, default False) -- 是否以百分位数形式显示返回的排名。

返回:

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

返回类型:

same type as caller

参见

core.groupby.GroupBy.rank

每组内值的排名。

示例

>>> import maxframe.tensor as mt
>>> import maxframe.dataframe as md
>>> df = md.DataFrame(data={'Animal': ['cat', 'penguin', 'dog',
...                                    'spider', 'snake'],
...                         'Number_legs': [4, 2, 4, 8, mt.nan]})
>>> df.execute()
    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' 都在第2和第3位,因此分配排名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.execute()
    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