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