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


Python pandas.Categorical用法及代码示例


用法:

class pandas.Categorical(values, categories=None, ordered=None, dtype=None, fastpath=False, copy=True)

以经典 R /S-plus 方式表示分类变量。

Categoricals 只能采用有限且通常是固定数量的可能值 (categories)。与统计分类变量相比,Categorical 可能有顺序,但不能进行数值运算(加法、除法等)。

Categorical 的所有值都在 categoriesnp.nan 中。在 categories 之外分配值将引发 ValueError 。顺序由 categories 的顺序定义,而不是值的词法顺序。

参数

valueslist-like

分类的值。如果给定类别,则不在类别中的值将替换为 NaN。

categoriesIndex-like(唯一),可选

此类别的唯一类别。如果未给出,则假定类别是values 的唯一值(如果可能,按它们出现的顺序排序)。

ordered布尔值,默认为 False

此分类是否被视为有序分类。如果为 True,则将对生成的分类进行排序。排序后的分类尊重其categories 属性的顺序(如果提供,该属性又是categories 参数)。

dtype分类类型

用于此分类的 CategoricalDtype 的实例。

抛出

ValueError

如果类别不验证。

TypeError

如果给出了明确的 ordered=True 但没有给出 categories 并且 values 是不可排序的。

注意

有关更多信息,请参阅用户指南。

例子

>>> pd.Categorical([1, 2, 3, 1, 2, 3])
[1, 2, 3, 1, 2, 3]
Categories (3, int64):[1, 2, 3]
>>> pd.Categorical(['a', 'b', 'c', 'a', 'b', 'c'])
['a', 'b', 'c', 'a', 'b', 'c']
Categories (3, object):['a', 'b', 'c']

缺失值不作为一个类别包括在内。

>>> c = pd.Categorical([1, 2, 3, 1, 2, 3, np.nan])
>>> c
[1, 2, 3, 1, 2, 3, NaN]
Categories (3, int64):[1, 2, 3]

但是,它们的存在在 codes 属性中由代码 -1 指示。

>>> c.codes
array([ 0,  1,  2,  0,  1,  2, -1], dtype=int8)

Ordered Categoricals 可以根据类别的自定义顺序进行排序,可以有最小值和最大值。

>>> c = pd.Categorical(['a', 'b', 'c', 'a', 'b', 'c'], ordered=True,
...                    categories=['c', 'b', 'a'])
>>> c
['a', 'b', 'c', 'a', 'b', 'c']
Categories (3, object):['c' < 'b' < 'a']
>>> c.min()
'c'

相关用法


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