Pandasで処理している40の機能を含むCSVデータセットがあります。 7つの機能は連続的(_int32
_)であり、残りはカテゴリカルです。
私の質問は:
カテゴリカル機能にPandasのdtype('category')
を使用する必要がありますか、それともデフォルトのdtype('object')
にすることができますか?
悪用することが予想される繰り返しが多い場合は、カテゴリを使用します。
たとえば、大きな取引テーブルの取引所ごとの合計サイズが必要だとします。デフォルトの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
カテゴリは実際には動的列挙の形式であることに注意してください。これらは、可能な値の範囲が固定されて有限である場合に最も役立ちます。
Pandasドキュメントには 簡潔なセクションcategorical
data型をいつ使用するかについての説明があります:
カテゴリカルデータ型は、次の場合に役立ちます。