Spec-Zone.ru › pandas 1

pandas.DataFrame.rank

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

Вычисление рангов числовых данных (от 1 до n) по оси.

По умолчанию равным значениям присваивается ранг, являющийся средним арифметическим рангов этих значений.

Parameters
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, необязательно

Для объектов DataFrame, ранжировать только числовые столбцы, если установлено в True.

na_option:{‘keep’, ‘top’, ‘bottom’}, по умолчанию ‘keep’

Как ранжировать значения NaN:

  • keep: присвоить ранг NaN значениям NaN

  • top: присвоить наименьший ранг значениям NaN

  • bottom: присвоить наибольший ранг значениям NaN

ascending:bool, по умолчанию True

Указывает, следует ли ранжировать элементы в порядке возрастания.

pct:bool, по умолчанию False

Указывает, следует ли отображать возвращаемые ранги в виде процентилей.

Returns
тип, совпадающий с типом вызывающего объекта

Возвращает Series или DataFrame с рангами данных в качестве значений.

См. также

core.groupby.GroupBy.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/1.5.0/reference/api/pandas.DataFrame.rank.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API