こちらの記事で紹介したダミー変数を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で実行するとこんな感じです。