pandasのダミー変数の変換
概要
- 値のダミー変数化、ダミー変数の値化などを行うことができる
具体例
get_dummies関数
- あるカラムの値をダミー変数化する
df = pd.DataFrame({
"sns": ["twitter", "facebook", "instagram", "tiktok", "youtube"],
"follwers": [10000, 100, 100000, 20000, 5000]
})
pd.get_dummies(df["sns"], prefix="sns")
"""
|index|sns\_facebook|sns\_instagram|sns\_tiktok|sns\_twitter|sns\_youtube|
|---|---|---|---|---|---|
|0|0|0|0|1|0|
|1|1|0|0|0|0|
|2|0|1|0|0|0|
|3|0|0|1|0|0|
|4|0|0|0|0|1|
"""
get_dummiesで得られた内容を元のデータセットと結合する
pd.concat([df, pd.get_dummies(df["sns"], prefix="sns").astype(int)], axis=1).drop(columns=["sns"])
"""
|index|follwers|sns\_facebook|sns\_instagram|sns\_tiktok|sns\_twitter|sns\_youtube|
|---|---|---|---|---|---|---|
|0|10000|0|0|0|1|0|
|1|100|1|0|0|0|0|
|2|100000|0|1|0|0|0|
|3|20000|0|0|1|0|0|
|4|5000|0|0|0|0|1|
"""
from_dummies関数
- ダミー変数を一つのカラムに収まるようにする
df = pd.DataFrame({"sns": ["twitter", "facebook", "instagram", "tiktok", "youtube"]})
dummies = pd.get_dummies(df["sns"], prefix="sns")
pd.from_dummies(dummies, sep="_")
"""
|index|sns|
|---|---|
|0|twitter|
|1|facebook|
|2|instagram|
|3|tiktok|
|4|youtube|
"""