pandas.Categorical(values,categories = None,ordered = None,dtype = None,fastpath = False )[source]
表示经典R / S-plus方式的分类变量
分类只能采用有限的,通常是固定数量的可能值(类别)。与统计分类变量相比,分类可能具有顺序,但数值运算(加法,除法,…)是不可能的。
分类的所有值都在类别或np.nan中。在类别之外分配值将引发ValueError。顺序由类别的顺序定义,而不是值的词汇顺序。
参数:
值:类似列表。分类的值,如果给出了类别,则不在类别中的值将替换为NaN。
类别:索引式(唯一),可选。此分类的唯一类别。如果没有给出,则假定类别是值的唯一值。
ordered:布尔值,(默认为False)。此分类是否被视为有序分类。如果没有给出,则不会订购生成的分类。
dtype:CategoricalDtype,CategoricalDtype用于此分类的实例
举:
ValueError异常:如果类别不验证。
类型错误:如果ordered=True给出了显式但没有类别且 值不可排序。
下面我们来看实例:
In [16]: st = ['a','a','b','c','c']
In [17]: ss = pd.Categorical(st)
In [18]: ss
Out[18]:
[a, a, b, c, c]
Categories (3, object): [a, b, c]
In [22]: ss.dtype
Out[22]: CategoricalDtype(categories=['a', 'b', 'c'], ordered=False)
这里就可以看到 categorical 实际上是计算一个列表型数据中的类别数,即不重复项,它返回的是一个CategoricalDtype 类型的对象,相当于在原来数据上附加上类别信息 ,
具体的类别可以通过和对应的序号可以通过 codes 和