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']
>>> 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