AttributeError:“类别”对象没有属性“ cat”

时间:2019-06-21 18:11:31

标签: python pandas

enter image description here

在python数据帧中,将列分配给变量(y=df.column)后获取类别代码会导致属性错误。

enter image description here

如果我们直接将df.column传递给Categorical函数,则同样可以正常工作。

enter image description here

1 个答案:

答案 0 :(得分:1)

.cat属性是与categorical dtype系列相关的类别访问器

s = pd.Series(['a', 'b', 'a']).astype('category') 
s                                                                                            
0    a
1    b
2    a
dtype: category
Categories (2, object): [a, b]

s.cat.codes                                                                                                                               
0    0
1    1
2    0
dtype: int8

OTOH,pd.Category返回一个pandas.core.arrays.categorical.Categorical对象,该对象具有直接在该对象上定义的这些属性

pd.Categorical(['a', 'b', 'c'])                                                                                                           
# [a, b, c]

pd.Categorical(['a', 'b', 'c'])  .codes                                                                                                                                   
# array([0, 1, 2], dtype=int8)