pandas.core.groupby.DataFrameGroupBy.rank#

DataFrameGroupBy.rank(method='average', ascending=True, na_option='keep', pct=False, axis=)[источник]#

Предоставить ранг значений внутри каждой группы.

Параметры:
метод{'average', 'min', 'max', 'first', 'dense'}, по умолчанию 'average'
  • среднее: средний ранг группы.

  • min: наименьший ранг в группе.

  • max: наивысший ранг в группе.

  • first: ранги назначаются в порядке их появления в массиве.

  • dense: как 'min', но ранг всегда увеличивается на 1 между группами.

ascendingbool, по умолчанию True

False для ранжирования от высокого (1) к низкому (N).

na_option{‘keep’, ‘top’, ‘bottom’}, по умолчанию ‘keep’
  • keep: оставить значения NA там, где они находятся.

  • верх: наименьший ранг при возрастании.

  • bottom: наименьший ранг при сортировке по убыванию.

pctbool, по умолчанию False

Вычислить процентный ранг данных в каждой группе.

ось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