Spec-Zone.ru › pandas 1

pandas.api.types.union_categoricals

pandas.api.types.union_categoricals(to_union, sort_categories=False, ignore_order=False)[source]

Объединение спископодобных объектов Categorical, объединяющих категории.

Все категории должны иметь один и тот же тип данных.

Параметры
to_union:спископодобный объект

Categorical, CategoricalIndex или Series с типом данных ‘category’.

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

Если True, результирующие категории будут отсортированы лексикографически, в противном случае они будут упорядочены так, как они появляются в данных.

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

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

Возвращает
Categorical
Возможные исключения
TypeError
  • все входные данные не имеют одинаковый тип данных

  • все входные данные не имеют одинаковый атрибут ordered

  • все входные данные упорядочены и их категории не идентичны

  • sort_categories=True и Categoricals упорядочены

ValueError

Передан пустой список категорий

Примечания

Для получения дополнительной информации о категориях, см. ссылку

Примеры

Если вы хотите объединить категориальные переменные, которые не обязательно имеют одинаковые категории, union_categoricals объединит спископодобный набор категориальных переменных. Новые категории будут представлять собой объединение объединяемых категорий.

>>> a = pd.Categorical(["b", "c"])
>>> b = pd.Categorical(["a", "b"])
>>> pd.api.types.union_categoricals([a, b])
['b', 'c', 'a', 'b']
Categories (3, object): ['b', 'c', 'a']

По умолчанию результирующие категории будут упорядочены так, как они появляются в категориях данных. Если вы хотите, чтобы категории были отсортированы лексикографически, используйте аргумент sort_categories=True.

>>> pd.api.types.union_categoricals([a, b], sort_categories=True)
['b', 'c', 'a', 'b']
Categories (3, object): ['a', 'b', 'c']

union_categoricals также работает в случае объединения двух категориальных переменных с одинаковыми категориями и информацией об упорядоченности (например, то, что вы также можете использовать append для).

>>> a = pd.Categorical(["a", "b"], ordered=True)
>>> b = pd.Categorical(["a", "b", "a"], ordered=True)
>>> pd.api.types.union_categoricals([a, b])
['a', 'b', 'a', 'b', 'a']
Categories (2, object): ['a' < 'b']

Вызывает TypeError, так как категории упорядочены и не идентичны.

>>> a = pd.Categorical(["a", "b"], ordered=True)
>>> b = pd.Categorical(["a", "b", "c"], ordered=True)
>>> pd.api.types.union_categoricals([a, b])
Traceback (most recent call last):
    ...
TypeError: to union ordered Categoricals, all categories must be the same

Введено в версии 0.20.0

Упорядоченные категориальные переменные с различными категориями или порядками могут быть объединены с использованием аргумента ignore_ordered=True.

>>> a = pd.Categorical(["a", "b", "c"], ordered=True)
>>> b = pd.Categorical(["c", "b", "a"], ordered=True)
>>> pd.api.types.union_categoricals([a, b], ignore_order=True)
['a', 'b', 'c', 'c', 'b', 'a']
Categories (3, object): ['a', 'b', 'c']

union_categoricals также работает с CategoricalIndex или Series, содержащими категориальные данные, но обратите внимание, что результирующий массив всегда будет обычным Categorical.

>>> a = pd.Series(["b", "c"], dtype='category')
>>> b = pd.Series(["a", "b"], dtype='category')
>>> pd.api.types.union_categoricals([a, b])
['b', 'c', 'a', 'b']
Categories (3, object): ['b', 'c', 'a']

© 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/1.5.0/reference/api/pandas.api.types.union_categoricals.html

Spec-Zone.ru

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