删除 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 版本中修复
原始问题应标记为已回答。
因此我们在 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 版本中修复
原始问题应标记为已回答。