pandas.api.types.union_categoricals # pandas.api.types。union_categoricals ( to_union , sort_categories = False , ignore_order = False ) [来源] # 将类列表的类联合类别组合起来。 所有类别必须具有相同的 dtype。 参数: to_union类似列表dtype='category' 的分类、分类索引或系列。 sort_categories bool, 默认 False如果为 true,则将对生成的类别进行词法排序,否则将按照数据中出现的顺序进行排序。 ignore_order bool,默认 False如果为 true,则类别的有序属性将被忽略。结果是无序的分类。 返回: 分类的 加薪: 类型错误 所有输入不具有相同的数据类型 所有输入不具有相同的有序属性 所有输入都是有序的,并且它们的类别不相同 sort_categories=True 且分类已排序 值错误已传递空分类列表 笔记 要了解有关类别的更多信息,请参阅链接 例子 如果您想组合不一定具有相同类别的分类,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还适用于组合相同类别的两个分类和顺序信息(例如您还可以附加的内容)的情况。 >>> 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 可以使用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']