当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python pandas.api.types.union_categoricals用法及代码示例

用法:

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

合并Categorical-like 的list-like,合并类别。

所有类别必须具有相同的 dtype。

参数

to_unionlist-like

Categorical、CategoricalIndex 或 dtype='category' 的系列。

sort_categories布尔值,默认为 False

如果为 true,则结果类别将被 lexsorted,否则它们将按照它们在数据中出现的顺序进行排序。

ignore_order布尔值,默认为 False

如果为真,分类的有序属性将被忽略。结果是无序的分类。

返回

分类的

抛出

TypeError
  • 所有输入都没有相同的 dtype

  • 所有输入都没有相同的有序属性

  • 所有输入都是有序的,并且它们的类别不相同

  • sort_categories=True 并且分类是有序的

ValueError

通过的分类空列表

注意

要了解有关类别的更多信息,请参阅链接

例子

>>> from pandas.api.types import union_categoricals

如果要组合不一定具有相同类别的分类,union_categoricals 将组合 list-like 的分类。新类别将是被组合类别的并集。

>>> 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 中的顺序排列。如果要对类别进行 lexsorted,请使用 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])
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)
>>> union_categoricals([a, b], ignore_order=True)
['a', 'b', 'c', 'c', 'b', 'a']
Categories (3, object):['a', 'b', 'c']

union_categoricals 也适用于包含分类数据的 CategoricalIndexSeries,但请注意,生成的数组将始终是普通的 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']

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.api.types.union_categoricals。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。