ValueError:不能与CategoricalIndex一起使用

时间:2016-09-22 11:57:00

标签: python pandas add categorical-data in-place

我正在使用 pandas 0.18

这失败

 cat_fields[f[0]].add_categories(s,inplace=True)

然而docs

  

inplace:boolean(默认值:False)

     

是否在地点添加类别或返回此分类的副本以及添加的类别。

我错过了什么吗?

我在许多数据框架中创建类别/列的超集,以便最终能够连接它们。

我的错误:

  

ValueError:无法使用CategoricalIndex

1 个答案:

答案 0 :(得分:1)

我认为您需要分配到原始列,因为Series.add_categories具有inplace参数,并且效果很好。

但在CategoricalIndex.add_categories中还有inplace参数,但它失败了。我认为这是错误的。

cat_fields[f[0]] = cat_fields[f[0]].add_categories(s)

或:

cat_fields[f[0]] = cat_fields[f[0]].cat.add_categories(s)

样品:

cat_fields = pd.DataFrame({'A':[1,2,3]}, index=['a','d','f'])


cat_fields.index = pd.CategoricalIndex(cat_fields.index)
cat_fields.A = pd.Categorical(cat_fields.A)
print (cat_fields)
   A
a  1
d  2
f  3

s = ['b','c']

cat_fields.A.cat.add_categories(s,inplace=True)

print (cat_fields.A)
Name: A, dtype: category
Categories (5, object): [1, 2, 3, b, c]


cat_fields.index.add_categories(s,inplace=True)
print (cat_fields)
  

ValueError:无法使用CategoricalIndex