pandas.Series.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