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