【毎日Python】Pythonでデータフレームの文字列データをダミー変数に変換|pandas.get_dummies

get_dummies
こつこつPython
import pandas as pd
import numpy as np

df = pd.DataFrame([[1,2,'A'],[2,1,'A'], [1,3,'B'], [2, 2,'A']],
columns=['grade', 'class', 'area'],
index=['idx01', 'idx02', 'idx03','idx04'])
df

Pythonで、カテゴリー変数をダミー変数に変更する方法です。
使用するのは、Pythonのpandasライブラリのget_dummiesメソッドです。
カテゴリー変数とは、数値で表すことができないデータのことで、文字列が該当します。
ダミー変数とは、0と1で構成される数値のデータのことです。
get_dummiesメソッドは、機械学習の前処理でよく使用されるメソッドです。
今回はこのようなデータフレームを用意します。

df.dtypes

カラムごとのデータ型を確認してみましょう。
数値型のintと文字列のobjectであることがわかります。

get_dummiesメソッドでは、デフォルトで変換されるのはobject型とPandasのcategory型です。

pd.get_dummies(df)

メソッドを使用して変換してみましょう。
文字列のカラムareaがダミー変数に変換されました。
カラム名は、元のカラム名に要素だった値がアンダースコアで追加されたものです。

df = df.astype({'class': 'category'})

classというカラムのデータ型をcategory型に変換みましょう。

df['class']

Pandasのcategory型とは、見た目は同じですが、このような項目が追加されます。

pd.get_dummies(df)

このデータフレームをダミー変数に変換してみましょう。
classとareaが変換されました。

pd.get_dummies(df,columns=['grade'])

数値型のカラムでも、引数columsに指定することで、ダミー変数に変換することができます。
実行します。
gradeのカラムを変換できました。

関連メソッド

【毎日Python】Pythonで変数のデータ型を取得する方法|type

【毎日Python】Pythonでカラムごとのデータ型を取得する方法|dtypes

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト