pandas.DataFrame.rank
- DataFrame.rank(axis=0, method='average', numeric_only=False, na_option='keep', ascending=True, pct=False)[source]
-
Вычисляет ранги числовых данных (от 1 до n) по оси.
По умолчанию равные значениям присваивается ранг, являющийся средним значением рангов этих значений.
- Параметры:
-
- axis:{0 или ‘index’, 1 или ‘columns’}, по умолчанию 0
-
Индекс для направления ранжирования. Для Series этот параметр не используется и по умолчанию равен 0.
- method:{‘average’, ‘min’, ‘max’, ‘first’, ‘dense’}, по умолчанию ‘average’
-
Как ранжировать группу записей, имеющих одинаковое значение (т.е. совпадения):
average: средний ранг группы
min: наименьший ранг в группе
max: наибольший ранг в группе
first: ранги присваиваются в порядке их появления в массиве
dense: как ‘min’, но ранг всегда увеличивается на 1 между группами.
- numeric_only:bool, по умолчанию False
-
Для объектов DataFrame, ранжировать только числовые столбцы, если установлено в True.
Изменено в версии 2.0.0: Значение по умолчанию для
numeric_onlyтеперьFalse. - na_option:{‘keep’, ‘top’, ‘bottom’}, по умолчанию ‘keep’
-
Как ранжировать значения NaN:
keep: присвоить NaN ранг NaN значениям
top: присвоить наименьший ранг значениям NaN
bottom: присвоить наибольший ранг значениям NaN
- ascending:bool, по умолчанию True
-
Указывает, следует ли ранжировать элементы в порядке возрастания.
- pct:bool, по умолчанию 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: устанавливая
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 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
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.DataFrame.rank.html