PythonのPandasのデータ型について

Python,イメージ

AI実装検定のご案内

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) が可能

データ型選択のベストプラクティス

  • 文字列はできるだけ string dtype を使う
    • 一貫性があり、今後のPandas開発の方向性に沿っている
  • カテゴリ型を活用する
    • 値が少ない列はcategoryにするとメモリ削減+処理高速化
  • 数値は精度に応じて選択
    • ID列ならint32で十分な場合もある
    • 金額や点数はint64float64を利用
  • 日付データは必ず datetime64 に変換
    • 文字列のままでは日付演算ができない

まとめ

Pandasのデータ型を正しく理解・設定することは、メモリ効率を高め、処理速度を上げ、分析を正確にするための第一歩です。

特にcategorydatetime64を積極的に活用することで、大規模データでも快適に扱えるようになります。

以上、PythonのPandasのデータ型についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次