Spec-Zone.ru › pandas 0.25

pandas.Series.rank

Series.rank(self, axis=0, method='average', numeric_only=None, na_option='keep', ascending=True, pct=False) [source]

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

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

Параметры:
axis : {0 or ‘index’, 1 or ‘columns’}, default 0

Индекс для прямого ранжирования.

method : {‘average’, ‘min’, ‘max’, ‘first’, ‘dense’}, default ‘average’

Как ранжировать группу записей, имеющих одинаковое значение (т. е. совпадения):

  • average: средний ранг группы
  • min: наименьший ранг в группе
  • max: наибольший ранг в группе
  • first: ранги присваиваются в порядке их появления в массиве
  • dense: как ‘min’, но ранг всегда увеличивается на 1 между группами
numeric_only : bool, optional

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

na_option : {‘keep’, ‘top’, ‘bottom’}, default ‘keep’

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

  • keep: присвоить NaN ранг NaN значениям
  • top: присвоить наименьший ранг значениям NaN, если сортировка по возрастанию
  • bottom: присвоить наибольший ранг значениям NaN, если сортировка по возрастанию
ascending : bool, default True

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

pct : bool, default False

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

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

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

Следующий пример демонстрирует, как метод ведет себя с вышеуказанными параметрами:

  • 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–2012, 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/0.25.0/reference/api/pandas.Series.rank.html

Spec-Zone.ru

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