ValueError: cannot use inplace with CategoricalIndex

ValueError: cannot use inplace with CategoricalIndex

我正在使用 pandas 0.18.

这失败了

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

但是 docs

inplace : boolean (default: False)

Whether or not to add the categories inplace or return a copy of this categorical with added categories.

我是不是漏掉了什么?

我正在跨多个数据帧创建 categories/columns 的超集,最终能够将它们连接起来。

我的错误:

ValueError: cannot use inplace with CategoricalIndex

我认为您需要分配给原始列,因为 Series.add_categoriesinplace 参数并且效果很好。

但在 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: cannot use inplace with CategoricalIndex