Spec-Zone.ru › pandas 2

pandas.Series.rank

Series.rank(axis=0, method='average', numeric_only=False, 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, по умолчанию 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

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

Returns:
тип такой же, как у вызываемого объекта

Возвращает 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.Series.rank.html

Spec-Zone.ru

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