見出し画像

pandas備忘録(縦横変換)

dataframeの縦横変換をしてみます。

縦変換

こんなデータを縦変換します。

縦変換にはmelt関数を使います。
id_vars:残したい変数
value_vars:変換対象の変数
var_name:変換後の変数名が格納される変数の名前
value_name:変換後の値が入る変数名

labtest.melt(id_vars=["subjid","visit","visitnum","lbdat"],
            value_vars=["WBC","RBC","HGB","CHOL","GLU","ALT","AST"],
            var_name="lbtestcd",
            value_name="lborres")

subjidとvisitnumで並べ替えしておきます。

lb_long = lb_long.sort_values(["subjid","visitnum","lbtestcd"])

横変換

次はこれを横に戻してみます。pivotを使います。

lb_wide=lb_long.pivot(index=["subjid","visit","visitnum","lbdat"],
             columns="lbtestcd",
             values="lborres")
lb_wide.reindex(["WBC","RBC","HGB","CHOL","GLU","ALT","AST"],level=1,axis="columns")

カラム名がアルファベット順になるので、reindexで並び替えました。


いいなと思ったら応援しよう!