我有一个包含40个特征的CSV数据集,使用Pandas进行处理。其中7个特征是连续型(int32
),其余的都是分类型。
我的问题是:
对于分类特征,我应该使用Pandas的dtype('category')
还是可以让它默认为dtype('object')
?
当您希望利用大量重复时,请使用类别(category)。
例如,假设我想为一张大的交易表计算每个交易所的总量。在这种情况下,默认使用 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
请确认以下是否符合您的要求:
请注意,分类实际上是一种动态枚举形式。如果可能值的范围是固定且有限的,则它们最为有用。
info()
或memory_usage()
来检查一下)。另外,dtype中的't'不应该大写。 - JohnE