pandas.Series.rank — pandas 3.0.0.dev0+2098.g9c5b9ee823 documentation (original) (raw)

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

Compute numerical data ranks (1 through n) along axis.

By default, equal values are assigned a rank that is the average of the ranks of those values.

Parameters:

axis{0 or ‘index’, 1 or ‘columns’}, default 0

Index to direct ranking. For Series this parameter is unused and defaults to 0.

method{‘average’, ‘min’, ‘max’, ‘first’, ‘dense’}, default ‘average’

How to rank the group of records that have the same value (i.e. ties):

numeric_onlybool, default False

For DataFrame objects, rank only numeric columns if set to True.

Changed in version 2.0.0: The default value of numeric_only is now False.

na_option{‘keep’, ‘top’, ‘bottom’}, default ‘keep’

How to rank NaN values:

ascendingbool, default True

Whether or not the elements should be ranked in ascending order.

pctbool, default False

Whether or not to display the returned rankings in percentile form.

Returns:

same type as caller

Return a Series or DataFrame with data ranks as values.

Examples

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

Ties are assigned the mean of the ranks (by default) for the group.

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

The following example shows how the method behaves with the above parameters:

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