已编辑
基于到目前为止的回答(谢谢),我理解了CategoricalDType
是什么以及它的用途。Categorical
/分类数组是什么?它有一个常见的用例吗?
我不明白pd.Categorical
和pd.api.types.CategoricalDtype
之间的区别。后者返回一个CategoricalDType
示例,前者返回一个Categories
示例。什么是Categorical
对象?它们有什么区别?它们有什么关系?什么时候我应该使用一个而不是另一个?
type(pd.Categorical(['a','b'],ordered=True))
Out[187]: pandas.core.arrays.categorical.Categorical
type(pd.api.types.CategoricalDtype(['a','b'], ordered=True))
Out[188]: pandas.core.dtypes.dtypes.CategoricalDtype
字符串
2条答案
按热度按时间rsl1atfo1#
您可以使用pd.CategoricalDtype将序列的数据类型更改为类别。
例如,你有这样的字符串dtype系列:
字符串
和
s.dtype
返回:型
现在,您可以使用以下命令创建分类dtype:
型
然后,您可以使用
pd.Series.astype
以B < a的排序更改该数据。型
输出量:
型
在那里,
型
是一个分类数组构造函数。
o3imoua42#
为了补充@Scott的答案,当你想在不同的对象之间维护一个公共的Categorical时,
CategoricalDtype
非常有用。让我们考虑例如:
字符串
如果我们转换为泛型Categorical和
concat
,那么生成的Series福尔斯会返回到object,因为类别并不常见:型
现在使用一个通用的
CategoricalDtype
确保在组合系列后保持此dtype:型
其他示例:
型