pandas.Categorical
- classpandas.Categorical(values, categories=None, ordered=None, dtype=None, fastpath=<no_default>, copy=True)[source]
-
Представляет категориальную переменную в классическом стиле R / S-plus.
Categoricals могут принимать только ограниченное и обычно фиксированное число возможных значений (categories). В отличие от статистических категориальных переменных, Categorical может иметь порядок, однако числовые операции (сложение, деление и т. д.) невозможны.
Все значения Categorical входят в categories или являются np.nan. Присваивание значений, не входящих в categories, вызовет ошибку ValueError. Порядок определяется порядком элементов в categories, а не лексикографическим порядком значений.
- Параметры:
-
- values:списокоподобный объект
-
Значения категориального объекта. Если указаны категории, значения, не входящие в них, будут заменены на NaN.
- categories:объект, подобный Index (уникальный), необязательный
-
Уникальные категории этого категориального объекта. Если не указаны, категории считаются уникальными значениями values (отсортированными, если это возможно, иначе — в порядке появления).
- ordered:bool, по умолчанию False
-
Определяет, считается ли этот категориальный объект упорядоченным. Если значение True, результирующий категориальный объект будет упорядоченным. При сортировке упорядоченный категориальный объект учитывает порядок своего атрибута categories (который, в свою очередь, соответствует аргументу categories, если он указан).
- dtype:CategoricalDtype
-
Экземпляр
CategoricalDtype, используемый для этого категориального объекта.
Атрибуты
Категории этого категориального объекта.
Коды категорий этого категориального индекса.
Определяет, упорядочены ли категории.
CategoricalDtypeэтого экземпляра.Методы
from_codes(codes[, categories, ordered, ...])Создает тип Categorical на основе кодов и категорий или dtype.
__array__([dtype, copy])Интерфейс массива numpy.
- Вызывает исключения:
-
- ValueError
-
Если категории не проходят проверку.
- TypeError
-
Если указан явный
ordered=True, но не заданы categories, а значения values нельзя отсортировать.
См. также
CategoricalDtype-
Тип для категориальных данных.
CategoricalIndex-
Индекс с базовым
Categorical.
Примечания
Подробнее см. в руководстве пользователя.
Примеры
>>> pd.Categorical([1, 2, 3, 1, 2, 3]) [1, 2, 3, 1, 2, 3] Categories (3, int64): [1, 2, 3]
>>> pd.Categorical(['a', 'b', 'c', 'a', 'b', 'c']) ['a', 'b', 'c', 'a', 'b', 'c'] Categories (3, object): ['a', 'b', 'c']
Пропущенные значения не включаются в качестве категории.
>>> c = pd.Categorical([1, 2, 3, 1, 2, 3, np.nan]) >>> c [1, 2, 3, 1, 2, 3, NaN] Categories (3, int64): [1, 2, 3]
Однако их наличие обозначается в атрибуте codes кодом -1.
>>> c.codes array([ 0, 1, 2, 0, 1, 2, -1], dtype=int8)
Упорядоченные Categoricals можно сортировать в соответствии с заданным порядком категорий; для них также можно определить минимальное и максимальное значения.
>>> c = pd.Categorical(['a', 'b', 'c', 'a', 'b', 'c'], ordered=True, ... categories=['c', 'b', 'a']) >>> c ['a', 'b', 'c', 'a', 'b', 'c'] Categories (3, object): ['c' < 'b' < 'a'] >>> c.min() 'c'
© 2008–2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
© 2011–2025, Open source contributors
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.3.0/reference/api/pandas.Categorical.html