147 Views
March 13, 24
スライド概要
前回結合したデータを「melt」使って、データを変数が一列にまとめられている縦型にしていきます。これにより、集計がしやすくなります。
● データを縦型に変換する
89 pandas.melt( データ名
, id_vars=固定される列名
, value_vars=meltする識別変数
, var_name=meltする識別変数の名前
, value_name=meltする識別変数の値の名前 )
直感的にわかりにくいので、ブログにプログラムを貼り付けておきますので、自分で書いてみて、覚えていきましょう。
************
★この動画のブログ
■ データサイエンス チュートリアル
https://tutorial4datascience.blogspot.com/
★参考資料
■ 【pandas】melt, pivot:縦横変換【データフレーム処理】 by shunさんの「データサイエンスの道標」
https://datasciencemore.com/python-pandas-melt-pivot/
1 3rd STEP 応用編 医療 Section 5 縦型(long型)に変換 89 pandas.melt(データ名 , id_vars=固定される列名 , value_vars=meltする識別変数 , var_name=meltする識別変数の名前 , value_name=meltする識別変数の値の名前) 90 データ名.drop(“列名”, axis=1)
2 Section 5 縦型(long型)に変換 プログラム解説1 横型(wide型)と縦型(long型) データには、下記のように実質同じものでも、横型(wide型)と縦型(long型)があります。 Excelデータは人間が見やすいように横型(wide型)になっていることが多いのですが、集計 する際は、縦型(long型)にすることが必要です。これは、変数が一列にまとめられているから です。この縦変換には、「melt」を用います。 縦型(long型) 横型(wide型) 店舗名 みかん リンゴ 店舗名 くだもの 価格 A 100 150 A みかん 100 B 70 90 B みかん 70 C 120 80 C みかん 120 変数 変数 A リンゴ 150 B リンゴ 90 C リンゴ 80 変数 【出典】 https://datasciencemore.com/python-pandas-melt-pivot/ (一部著者改変)
3 Section 5 縦型(long型)に変換 プログラム解説2 melt(1) データを縦変換する「melt」のパラメータと引数は、下記のようなものがあります。 89 pandas.melt( データ名 , id_vars= 固定される列名 , value_vars= meltする識別変数 , var_name= meltする識別変数の名前 , value_name= meltする識別変数の値の名前 ) *パラメータは、関数で指定する値の名前。それに対して、引数は、各パラメーターに指定 する値です。
4 Section 5 縦型(long型)に変換 プログラム解説3 melt(2) 各パラメータには、下記のような引数を指定します。 id_vars: 変換前のデータフレームで列として残したい列名のリストを指定します。 ここで指定しない列は、変換後のデータフレームから除外されます。 value_vars: 変換前のデータフレームでmeltしたい識別変数の列名のリストを指定します。 複数の列の中で、何を一列にしたいのか、その列のリストを記載してください。 また、指定しなかった場合は全ての列が一列に変換されます。 var_name: 変換後のデータフレームで、一列にしたいリストの列名を指定します。 「value_vars」で指定し、縦一列にするリストの列名を新たに名付けると いう訳です。 何も指定しないと、列名は「variable」になります。 value_name:変換後のデータフレームの「value_vars」で指定したリスト(識別変数) に対応する値の列名を指定します。 何も指定しないと、 「value」になります。
5 Section 5 縦型(long型)に変換 【前処理】 ゴミを処理する データ結合の過程でできた列「Unnamed: 0」 と、データ分析で使わなそうだし、欠損値が 多い列「単位」を削除します。行列の削除には、「drop」を使います。 90 データ名.drop(“列名”, axis=1) 例によって、 「axis=1は」縦方向の処理(列の削除)です。デフォルトはaxis=0(行の 削除)。
6 Section 5 縦型(long型)に変換 1.縦型(long型)に変換する(1) それでは「melt」 を使って、結合したデータ「df_all」を縦型(long型)に変換していきま しょう。
7 Section 5 縦型(long型)に変換 2.縦型(long型)に変換する(2) 結果は、下記のようになります。 「id_vars」で、指定した列はそのままで、 「value_vars」で、指定したリスト(識別変数)が、「var_name」で指定した「都道府 県番号」として縦に並びました。 「value_vars」で、指定したリスト(識別変数)の値が、「value_name」で名付けた 「個数」の列に縦に格納されています。