【解説】ダミー変数化 | データサイエンス100本ノック【問58 回答】

【解説】ダミー変数化 | データサイエンス100本ノック【問58 回答】

当ページのリンクには広告が含まれています。




目次

この記事の対象者



・ データサイエンティストを目指している人

・ Pythonでダミー変数化の方法を知りたい人



以降はデータサイエンス100本ノックの問題を題材にしながら学んでいきます。


データサイエンス100本ノックの始め方は、以下の記事を参考にしていただければと思います。


>>データサイエンス100本ノックの始め方を確認する


第58問目: ダミー変数化

P-058: 顧客データフレーム(df_customer)の性別コード(gender_cd)をダミー変数化し、顧客ID(customer_id)とともに抽出せよ。結果は10件表示させれば良い。



ダミー変数ってなんだろう?

ダミー変数とは、0か1の値を取る変数のことを言います。

Pythonではget_dummies関数を用いることで、ダミー変数化できます。

実際にPythonのコードで具体的な使い方を見ていきましょう。

ダミー変数化の例
1
2
3
4
5
import pandas as pd

sr = pd.Series(['male', 'female', 'female', 'male', 'female'])

pd.get_dummies(sr)
出力
1
2
3
4
5
6
	female	male
0 0 1
1 1 0
2 1 0
3 0 1
4 1 0

このように各項目においてmaleなのかfemaleなのかを、0と1で表現させることができます。

なお、male, femaleではなく、apple, banana, orangeのように2種類以上のデータにもダミー関数は適用できます。

2種類以上のデータにもダミー関数は適用できる
1
2
3
4
5
import pandas as pd

sr = pd.Series(['apple', 'banana', 'orange', 'apple', 'orange', 'banana'])

pd.get_dummies(sr)
出力
1
2
3
4
5
6
7
	apple	banana	orange
0 1 0 0
1 0 1 0
2 0 0 1
3 1 0 0
4 0 0 1
5 0 1 0

これで前提知識はOK。早速問題に取り掛かります。

今回のダミー変数化の対象は、顧客データフレームの性別コード(gender_cd)ですね。

get_dummies関数は、引数columnsにダミー化したい列の列名をリストで指定すると、指定した列のデータを対象にダミー関数化してくれます。

本問を解きながら、その使い方を学びましょう。

以下のように書けばOKです。

1
pd.get_dummies(df_customer[['customer_id', 'gender_cd']], columns=['gender_cd']).head(10)
出力
1
2
3
4
5
6
7
8
9
10
11
customer_id	gender_cd_0	gender_cd_1	gender_cd_9
0 CS021313000114 0 1 0
1 CS037613000071 0 0 1
2 CS031415000172 0 1 0
3 CS028811000001 0 1 0
4 CS001215000145 0 1 0
5 CS020401000016 1 0 0
6 CS015414000103 0 1 0
7 CS029403000008 1 0 0
8 CS015804000004 1 0 0
9 CS033513000180 0 1 0

これで完了です。

まとめ: ダミー変数化の方法を学びました。

本記事は、「【Python】ダミー変数化 | データサイエンス100本ノック【問58 回答】」というテーマでまとめました。

本記事で紹介した方法を元にデータサイエンティストとしての知見を深めていただければと思います。

なお、データサイエンティストに必要な知識は、TechAcademyのデータサイエンスコースでの学習がおすすめです。

>> [続き]第59〜60問の回答・解説を確認する

コメント