Pandas: Series - rank() function

Compute numerical data ranks along axis

The rank() function is used to 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.


Series.rank(self, axis=0, method='average', numeric_only=None, na_option='keep', ascending=True, pct=False)
Pandas Series rank image


Name Description Type/Default Value Required / Optional
axis Index to direct ranking. {0 or ‘index’, 1 or ‘columns’}
Default Value: 0
method How to rank the group of records that have the same value (i.e. ties):
  • average: average rank of the group
  • min: lowest rank in the group
  • max: highest rank in the group
  • first: ranks assigned in order they appear in the array
  • dense: like ‘min’, but rank always increases by 1 between groups
{‘average’, ‘min’, ‘max’, ‘first’, ‘dense’}
Default Value: ‘average’
numeric_only For DataFrame objects, rank only numeric columns if set to True. bool Optional
na_option How to rank NaN values:
  • keep: assign NaN rank to NaN values
  • top: assign smallest rank to NaN values if ascending
  • bottom: assign highest rank to NaN values if ascending
{‘keep’, ‘top’, ‘bottom’}
Default Value: ‘keep’
ascending Whether or not the elements should be ranked in ascending order. bool
Default Value: True
pct Whether or not to display the returned rankings in percentile form. bool
Default Value: False

Returns: same type as caller
Return a Series or DataFrame with data ranks as values.


Download the above Notebook from here.

Previous: Value at the given quantile
Next: Sum of the values for the requested axis in Pandas