我正在使用 pandas 0.18 。
这失败
cat_fields[f[0]].add_categories(s,inplace=True)
然而docs说
inplace:boolean(默认值:False)
是否在地点添加类别或返回此分类的副本以及添加的类别。
我错过了什么吗?
我在许多数据框架中创建类别/列的超集,以便最终能够连接它们。
我的错误:
ValueError:无法使用CategoricalIndex
答案 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