#36 縦型(long型)に変換

100 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/

profile-image

すべてのビジネスパーソンが意思決定プロセスにデータを活用する思考を身につけ、ブルシットジョブをこの世からなくしていきましょう!

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

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.

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.

3 Section 5 縦型(long型)に変換 プログラム解説2 melt(1) データを縦変換する「melt」のパラメータと引数は、下記のようなものがあります。 89 pandas.melt( データ名 , id_vars= 固定される列名 , value_vars= meltする識別変数 , var_name= meltする識別変数の名前 , value_name= meltする識別変数の値の名前 ) *パラメータは、関数で指定する値の名前。それに対して、引数は、各パラメーターに指定 する値です。

4.

4 Section 5 縦型(long型)に変換 プログラム解説3 melt(2) 各パラメータには、下記のような引数を指定します。 id_vars: 変換前のデータフレームで列として残したい列名のリストを指定します。 ここで指定しない列は、変換後のデータフレームから除外されます。 value_vars: 変換前のデータフレームでmeltしたい識別変数の列名のリストを指定します。 複数の列の中で、何を一列にしたいのか、その列のリストを記載してください。 また、指定しなかった場合は全ての列が一列に変換されます。 var_name: 変換後のデータフレームで、一列にしたいリストの列名を指定します。 「value_vars」で指定し、縦一列にするリストの列名を新たに名付けると いう訳です。 何も指定しないと、列名は「variable」になります。 value_name:変換後のデータフレームの「value_vars」で指定したリスト(識別変数) に対応する値の列名を指定します。 何も指定しないと、 「value」になります。

5.

5 Section 5 縦型(long型)に変換 【前処理】 ゴミを処理する データ結合の過程でできた列「Unnamed: 0」 と、データ分析で使わなそうだし、欠損値が 多い列「単位」を削除します。行列の削除には、「drop」を使います。 90 データ名.drop(“列名”, axis=1) 例によって、 「axis=1は」縦方向の処理(列の削除)です。デフォルトはaxis=0(行の 削除)。

6.

6 Section 5 縦型(long型)に変換 1.縦型(long型)に変換する(1) それでは「melt」 を使って、結合したデータ「df_all」を縦型(long型)に変換していきま しょう。

7.

7 Section 5 縦型(long型)に変換 2.縦型(long型)に変換する(2) 結果は、下記のようになります。 「id_vars」で、指定した列はそのままで、 「value_vars」で、指定したリスト(識別変数)が、「var_name」で指定した「都道府 県番号」として縦に並びました。 「value_vars」で、指定したリスト(識別変数)の値が、「value_name」で名付けた 「個数」の列に縦に格納されています。