Spec-Zone.ru › pandas 2

pandas.Series.cat.set_categories

Series.cat.set_categories(*args, **kwargs)[source]

Установите категории на указанные новые категории.

new_categories может включать новые категории (что приведёт к неиспользуемым категориям) или удалять старые категории (что приводит к значениям, установленным в NaN). Если rename=True, категории просто будут переименованы (меньше или больше элементов, чем в старых категориях, приведут к значениям, установленным в NaN или к неиспользуемым категориям соответственно).

Этот метод может использоваться для выполнения более чем одного действия по добавлению, удалению и переупорядочиванию одновременно и, следовательно, быстрее, чем выполнение отдельных шагов с помощью более специализированных методов.

С другой стороны, этот метод не выполняет проверок (например, что старые категории включены в новые категории при переупорядочивании), что может привести к неожиданным изменениям, например, при использовании специальных строковых типов, которые не рассматривают строку S1 как равную строке с одним символом в Python.

Параметры:
new_categories:Индекс-подобный

Категории в новом порядке.

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

Является ли категориальная переменная упорядоченной категориальной переменной. Если не указано, информация об упорядоченности не изменяется.

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

Нужно ли рассматривать новые категории как переименование старых категорий или как переупорядоченные категории.

Возвращает:
Категориальная переменная с переупорядоченными категориями.
Возбуждает:
ValueError

Если новые категории не проверяются как категории

См. также

rename_categories

Переименовать категории.

reorder_categories

Переупорядочить категории.

add_categories

Добавить новые категории.

remove_categories

Удалить указанные категории.

remove_unused_categories

Удалить неиспользуемые категории.

Примеры

Для pandas.Series:

>>> raw_cat = pd.Categorical(['a', 'b', 'c', 'A'],
...                           categories=['a', 'b', 'c'], ordered=True)
>>> ser = pd.Series(raw_cat)
>>> ser
0   a
1   b
2   c
3   NaN
dtype: category
Categories (3, object): ['a' < 'b' < 'c']
>>> ser.cat.set_categories(['A', 'B', 'C'], rename=True)
0   A
1   B
2   C
3   NaN
dtype: category
Categories (3, object): ['A' < 'B' < 'C']

Для pandas.CategoricalIndex:

>>> ci = pd.CategoricalIndex(['a', 'b', 'c', 'A'],
...                          categories=['a', 'b', 'c'], ordered=True)
>>> ci
CategoricalIndex(['a', 'b', 'c', nan], categories=['a', 'b', 'c'],
                 ordered=True, dtype='category')
>>> ci.set_categories(['A', 'b', 'c'])
CategoricalIndex([nan, 'b', 'c', nan], categories=['A', 'b', 'c'],
                 ordered=True, dtype='category')
>>> ci.set_categories(['A', 'b', 'c'], rename=True)
CategoricalIndex(['A', 'b', 'c', nan], categories=['A', 'b', 'c'],
                 ordered=True, dtype='category')

© 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.cat.set_categories.html

Spec-Zone.ru

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