#36 縦型(long型)に変換

前回結合したデータを「melt」使って、データを変数が一列にまとめられている縦型にしていきます。これにより、集計がしやすくなります。

Excelデータは人間が見やすいように横型(wide型)になっていることが多いのですが、集計する際は、縦型(long型)にすることが必要です。これは、変数が一列にまとめられているからです。

この縦変換には、「melt」を用います。

● データを縦型に変換する

   89 pandas.melt( データ名
                                , id_vars=固定される列名
                                , value_vars=meltする識別変数
                                , var_name=meltする識別変数の名前
                                , value_name=meltする識別変数の値の名前 )

● 不要な列を削除する

   90 データ名.drop(“列名”, axis=1)


************

まずは、下記の動画(4分52秒)をご覧ください。





次にプログラムの解説を自分のペースで読み、コラボでプログラムを書いてみましょう。下記のスライドを参照してください。

df_all3 = df_all.drop(["Unnamed: 0", "単位"], axis=1)
df_all3
df_all4 = pd.melt(df_all
                  , id_vars=['薬効分類', '薬効分類名称', '医薬品コード', '医薬品名'
                  ,'薬価基準収載医薬品コード', '薬価', '後発品区分','年度','剤型_場所']
                  , value_vars=['01', '02', '03', '04', '05'
                  ,'06', '07', '08', '09', '10', '11','12', '13'
                  , '14', '15', '16', '17','18', '19', '20', '21'
                  , '22', '23', '24', '25', '26', '27', '28', '29'
                  ,'30', '31', '32', '33', '34', '35', '36', '37'
                  , '38', '39', '40', '41', '42', '43', '44', '45'
                  , '46', '47'],
                  var_name='都道府県番号',
                  value_name='個数',
                  col_level=None
                  )

コメント