pythonで機械学習のためにデータの前処理をしようとしています。
以下のようなデータがあるとします。
|ブレンド|カフェラテ|カプチーノ|
|S| | |
| |M| |
| | |L|
| |S| |
サイズを数値に変換し、以下のような表になっています。ここまではExcelで作成されていて、csvで保存されています。
ブレンド カフェラテ カプチーノ
1 0 0
0 2 0
0 0 3
0 1 0
ただこれだとスパースになってしまうので、以下のようにしたいです。
ブレンド:1 カフェラテ:2 カプチーノ:3 に置換して
種類 サイズ
1 1
2 2
3 3
2 1
pandasのデータフレームでこのような処理を簡単に行う方法はありますでしょうか。
最初のデータでは3列のうち1列にしか値が入っていないので、「サイズ」の列については3つの列の合計を入れるようにしてみました。
(insertを使っているのは、3列目以降に別のカテゴリの同じようなデータがあるためです)
python3
1df.insert(3, "サイズ", 0) 2df["サイズ"] = df["ブレンド"]+df["カフェラテ"]+df["カプチーノ"] 3
「種類」の列については、新しい列を作って「ブレンド」の列が0以外なら1, 「カフェラテ」の列が0以外なら2, 「カプチーノ」の列が0以外なら3を入れたいです。
jupyter notebookでpython3.7を使っています。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー