pandas.core.groupby.DataFrameGroupBy.rank
- DataFrameGroupBy.rank(method='average', ascending=True, na_option='keep', pct=False, axis=_NoDefault.no_default)[source]
-
Выводит ранг значений в каждой группе.
- Параметры:
-
- method:{‘average’, ‘min’, ‘max’, ‘first’, ‘dense’}, по умолчанию ‘average’
-
average: средний ранг группы.
min: минимальный ранг в группе.
max: максимальный ранг в группе.
first: ранги присваиваются в порядке их появления в массиве.
dense: как ‘min’, но ранг всегда увеличивается на 1 между группами.
- ascending:bool, по умолчанию True
-
False для рангов от высокого (1) до низкого (N).
- na_option:{‘keep’, ‘top’, ‘bottom’}, по умолчанию ‘keep’
-
keep: значения NA остаются на своих местах.
top: наименьший ранг при возрастающей сортировке.
bottom: наименьший ранг при убывающей сортировке.
- pct:bool, по умолчанию False
-
Вычислить процентный ранг данных в каждой группе.
- axis:int, по умолчанию 0
-
Ось объекта, по которой вычисляется ранг.
Устарело начиная с версии 2.1.0: Для axis=1, работа производится с основным объектом. В противном случае ключевое слово axis не требуется.
- Возвращаемое значение:
-
- DataFrame с рангом значений в каждой группе
См. также
Series.groupby-
Применение функции groupby к Series.
DataFrame.groupby-
Применение функции groupby к каждой строке или столбцу DataFrame.
Примеры
>>> df = pd.DataFrame( ... { ... "group": ["a", "a", "a", "a", "a", "b", "b", "b", "b", "b"], ... "value": [2, 4, 2, 3, 5, 1, 2, 4, 1, 5], ... } ... ) >>> df group value 0 a 2 1 a 4 2 a 2 3 a 3 4 a 5 5 b 1 6 b 2 7 b 4 8 b 1 9 b 5 >>> for method in ['average', 'min', 'max', 'dense', 'first']: ... df[f'{method}_rank'] = df.groupby('group')['value'].rank(method) >>> df group value average_rank min_rank max_rank dense_rank first_rank 0 a 2 1.5 1.0 2.0 1.0 1.0 1 a 4 4.0 4.0 4.0 3.0 4.0 2 a 2 1.5 1.0 2.0 1.0 2.0 3 a 3 3.0 3.0 3.0 2.0 3.0 4 a 5 5.0 5.0 5.0 4.0 5.0 5 b 1 1.5 1.0 2.0 1.0 1.0 6 b 2 3.0 3.0 3.0 2.0 3.0 7 b 4 4.0 4.0 4.0 3.0 4.0 8 b 1 1.5 1.0 2.0 1.0 2.0 9 b 5 5.0 5.0 5.0 4.0 5.0
© 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.core.groupby.DataFrameGroupBy.rank.html