我有一个包含40个功能的CSV数据集,我正在处理Pandas。 7个要素是连续的(int32
),其余的是绝对的。
我的问题是:
我应该使用dtype('category')
Pandas作为分类功能,还是可以使用默认dtype('object')
?
答案 0 :(得分:7)
当您希望利用大量重复时使用类别。
例如,假设我想要一个大型交易表的每个交易所的聚合大小。使用默认的object
是完全合理的:
In [6]: %timeit trades.groupby('exch')['size'].sum()
1000 loops, best of 3: 1.25 ms per loop
但是由于可能的交换列表非常小,并且因为有很多重复,我可以使用category
来加快速度:
In [7]: trades['exch'] = trades['exch'].astype('category')
In [8]: %timeit trades.groupby('exch')['size'].sum()
1000 loops, best of 3: 702 µs per loop
请注意,类别实际上是动态枚举的一种形式。如果可能值的范围是固定且有限的,它们是最有用的。
答案 1 :(得分:3)
Pandas文档中有concise section关于何时使用categorical
数据类型的说明:
在以下情况下,分类数据类型很有用: