【Python】ダミー変数を作成する方法【Pandas】

こちらの記事で紹介したダミー変数をPythonで作成する方法を紹介します。

Pandasライブラリのget_dummies関数を使ってダミー変数を作ります。

まずは簡単な例からです。pandasライブラリをインポートして、1次元のリストを作成します。作成したリストをget_dummies関数の引数にセットします。

# pandasライブラリをインポート
import pandas as pd

# 1次元のリストを作成
sr = pd.Series(['A','B','A','C','D'])

pd.get_dummies(sr)

こちらを実行すると、以下のような結果が出力されます。

A B C D
0 1 0 0 0
1 0 1 0 0
2 1 0 0 0
3 0 0 1 0
4 0 0 0 1

簡単にダミー変数を作成することができました。

以前の記事で紹介したデータも簡単にダミー変数が作れます。

先程と同じように、pandasライブラリをインポートして、データフレームを作成します。作成したリストをget_dummies関数の引数にセットします。

# pandasライブラリをインポート
import pandas as pd

# データフレーム(2次元のリストを作成)
df = pd.DataFrame({'名前':['Aさん','Bさん','Cさん','Dさん','Eさん'],'アンケート結果':['はい','はい','いいえ','はい','いいえ']})

pd.get_dummies(df)

こちらを実行すると以下のようになります。こちらは名前もダミー変数となっています。データによってはダミー変数化しても問題ないですが、名前はダミー変数化したくないので、ダミー変数化したい列を指定します。

名前_Aさん 名前_Bさん 名前_Cさん 名前_Dさん 名前_Eさん アンケート結果_いいえ アンケート結果_はい
0 1 0 0 0 0 0 1
1 0 1 0 0 0 0 1
2 0 0 1 0 0 1 0
3 0 0 0 1 0 0 1
4 0 0 0 0 1 1 0

ダミー変数化する列を指定する

ダミー変数化する列を指定する場合、columnsを指定します。

今回の場合だと、アンケート結果を指定することで指定した列のみをダミー変数化できます。

pd.get_dummies(df,columns=['アンケート結果'])

実行した結果が以下の通りです。名前はアンケート結果のみがダミー変数となっています。

名前 アンケート結果_いいえ アンケート結果_はい
0 Aさん 0 1
1 Bさん 0 1
2 Cさん 1 0
3 Dさん 0 1
4 Eさん 1 0

pythonには便利なライブラリが豊富ですね〜。

Jypter Notebookで実行するとこんな感じです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA