スポンサーリンク

【Python】データフレームにおける型の扱い

記事内に広告が含まれています。

Pythonでデータを扱う際、pandasライブラリのDataFrameは非常に便利なデータ構造です。

データを効率的に処理・分析するためには、「データ型(dtype)」の理解が欠かせません。

本記事では、pandasのデータ型の基本から実践的な型変換方法、型エラーの対処法までを丁寧に解説します。

スポンサーリンク

データフレームの「型」とは?

pandasでは、各列が1つのデータ型(dtype)を持ちます。

これはNumPyの型をベースにしており、以下のような型があります。

型名説明
int64整数1, 2, 3
float64浮動小数点1.0, 3.14
object文字列や混合型“apple”, “123abc”
bool真偽値True, False
datetime64[ns]日時2025-01-01
categoryカテゴリ型(メモリ効率が高い)“A”, “B”, “C”
スポンサーリンク

型を確認する方法

dtypes属性

import pandas as pd

df = pd.DataFrame({
    'id': [1, 2, 3],
    'price': [100.5, 200.0, 150.25],
    'product': ['apple', 'banana', 'cherry']
})

print(df.dtypes)

出力例

id           int64
price      float64
product     object
dtype: object

info()メソッド

データ量や欠損値も含めた概要が見られます。

df.info()

型変換(キャスト)の方法

astype()による変換

df['id'] = df['id'].astype(str)  # int → str
df['price'] = df['price'].astype('int')  # float → int(小数点切り捨て)

変換できないデータがあるとエラーになります。

失敗を無視したい場合は、errors='ignore'errors='coerce'を使います。

よくある型変換とその活用例

日付型に変換(文字列 → datetime)

df['order_date'] = pd.to_datetime(df['order_date'], errors='coerce')

errors='coerce' を指定すると、変換できない値はNaT(欠損扱い)になります。

カテゴリ型に変換

df['category'] = df['category'].astype('category')

大量の重複データがある場合、メモリ削減・処理速度の向上に効果あり。

型エラーとその対処法

例:文字列を数値に変換しようとして失敗

df['value'] = pd.to_numeric(df['value'], errors='coerce')

文字列や記号が混ざっている場合、errors='coerce'でNaNに変換できます。

データ型の自動推定に注意!

CSVなどを読み込んだとき、自動的にobject型になるケースが多いです。

df = pd.read_csv('data.csv')
print(df.dtypes)

必要に応じて、読み込み時にdtype引数を明示的に指定することが重要です。

型の一括変換・複数列への適用

df = df.astype({'id': 'int64', 'price': 'float64'})

ループで処理も可能です。

for col in ['col1', 'col2']:
    df[col] = df[col].astype('float')

型とパフォーマンスの関係

  • 不要にobject型を使うとメモリを多く消費します。
  • 分析対象が決まっている列は、category型にすることで集計が高速になります。

まとめ

操作方法
型を確認df.dtypes, df.info()
型を変換astype(), to_datetime(), to_numeric()
型変換エラーの対処errors='coerce', category型の活用
型の明示CSV読み込み時のdtype指定

データ型は地味ですが、データ分析の基盤です。

型を正しく扱うことで、エラー回避・処理の高速化・メモリ節約が可能になります。

スポンサーリンク
Python
著者SNS
タイトルとURLをコピーしました