Spec-Zone.ru › pandas 0.25

pandas.api.types.union_categoricals

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

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

Добавлена в версии 0.19.0.

Параметры:
to_union : list-like of Categorical, CategoricalIndex,

или Series с типом ‘category’

sort_categories : boolean, default False

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

ignore_order : boolean, default False

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

Добавлена в версии 0.20.0.

Возвращает:
result : Categorical
Возможные исключения:
TypeError
  • все входные данные не имеют одинакового типа
  • все входные данные не имеют одинакового свойства ordered
  • все входные данные отсортированы, и их категории не идентичны
  • sort_categories=True и Categoricals отсортированы
ValueError

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

Примечания

Чтобы узнать больше о категориях, см. ссылку

Примеры

>>> from pandas.api.types import union_categoricals

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

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

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

>>> 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)
>>> 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)
>>> union_categoricals([a, b])
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)
>>> 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')
>>> union_categoricals([a, b])
[b, c, a, b]
Categories (3, object): [b, c, a]

© 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.api.types.union_categoricals.html

Spec-Zone.ru

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