Spec-Zone.ru › pandas 0.25

pandas.DataFrame.rank

DataFrame.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.DataFrame.rank.html

Spec-Zone.ru

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