删除 Series 中未使用的类别会导致类别重复

Removing unused categories in Series results in duplicated categories

因此我们在 pandas 0.17

中创建一个具有 NaN 值 的序列
>>> s = pd.Series(["A", "B", pd.np.nan]).astype("category")

然后我们删除未使用的类别,结果如下:

>>> s.cat.remove_unused_categories()
0      A
1      B
2    NaN
dtype: category
Categories (3, object): [B, A, B]

我查看了 remove_unused_categories 代码,发现 cat._codes returns [ 0 1 -1] 适用于此数据示例。它会产生 3 个类别,而不是 2 个。好吧,这个函数现在反之亦然:它添加了不需要的类别。)

这是 0.17 版本中确认的错误,已在 0.17.1 版本中修复

原始问题应标记为已回答。