Pandasのデータ型(dtypes)は、データ分析をするうえで非常に重要な要素です。
なぜなら、データ型の違いによって演算方法、メモリ使用量、処理速度が変わるからです。
ここでは、Pandasで扱う代表的なデータ型を詳しく解説していきます。
目次
Pandasのデータ型の基本
Pandasでは、各列(Series)ごとにdtype(データ型)を持ちます。
これはNumPyのデータ型に基づいており、表形式データを効率的に処理できるように設計されています。
よく使われる基本的な型は以下の通りです。
- 数値型
int64: 整数(例: 1, 2, -5)float64: 浮動小数点数(例: 3.14, -0.001)
- 文字列型
object: 汎用オブジェクト型(通常は文字列が格納される)string: 新しい文字列専用dtype(Pandas 1.0以降)
- ブール型
bool: True / False
- 日付・時間型
datetime64[ns]: 日付や日時(例: 2025-08-26 12:00:00)timedelta64[ns]: 日時の差分
- カテゴリ型
category: カテゴリカルデータ(値の種類が少ないときに効率的)
データ型の確認・変換
確認方法
import pandas as pd
df = pd.DataFrame({
"id": [1, 2, 3],
"name": ["Alice", "Bob", "Charlie"],
"score": [95.5, 88.0, 72.5],
"passed": [True, True, False],
"date": pd.to_datetime(["2023-01-01", "2023-01-02", "2023-01-03"])
})
print(df.dtypes)
代表的なデータ型の特徴と用途
数値型(int, float)
int64:整数演算に最適float64:小数を扱う計算に必要- 用途:売上金額、点数、センサー値など
文字列型(object, string)
objectは従来から使われてきた型で、文字列以外も混在可能stringは文字列専用でメソッドが安定している- 用途:名前、住所、商品コードなど
ブール型(bool)
True/Falseを保持- フィルタリングや条件分岐でよく使用
- 用途:合格判定、フラグ列
日付・時間型(datetime64, timedelta64)
datetime64[ns]は日付/時刻を効率的に保持timedelta64[ns]は時間差を保持- 用途:イベントのタイムスタンプ、セッションの長さ
カテゴリ型(category)
- 値の種類が少ない場合にメモリ効率が良い
- 用途:性別(男/女)、都道府県、商品カテゴリなど
データ型による処理の違い
- 数値型なら統計量 (
mean,sum) が計算できる - 文字列型なら文字列メソッド (
str.lower,str.contains) が使える - 日付型なら日時演算 (
dt.year,dt.month) が使える - カテゴリ型なら高速なグルーピング (
groupby) が可能
データ型選択のベストプラクティス
- 文字列はできるだけ
stringdtype を使う- 一貫性があり、今後のPandas開発の方向性に沿っている
- カテゴリ型を活用する
- 値が少ない列は
categoryにするとメモリ削減+処理高速化
- 値が少ない列は
- 数値は精度に応じて選択
- ID列なら
int32で十分な場合もある - 金額や点数は
int64やfloat64を利用
- ID列なら
- 日付データは必ず
datetime64に変換- 文字列のままでは日付演算ができない
まとめ
Pandasのデータ型を正しく理解・設定することは、メモリ効率を高め、処理速度を上げ、分析を正確にするための第一歩です。
特にcategoryやdatetime64を積極的に活用することで、大規模データでも快適に扱えるようになります。
以上、PythonのPandasのデータ型についてでした。
最後までお読みいただき、ありがとうございました。
