Pandasでデータ加工に使うものを整理する

Pandasの加工フローは似たような書き方が複数あるため、ベースラインを整理しておきます。

各工程をつなぐ

  • .\で改行ありでつないでいける
  • pipeは使うケースが限られるので基本使わない

行列の抽出

  • カラムの指定にはfilter()を使う
    • 引数はitems,like,regex
    • 行のフィルターにも使えるが、index対象
  • 行のvalueのフィルターにはquery,dropnaを使う
    • []は複雑な処理のみと割り切り基本使わない
    • queryは変数を@変数名で取り込み可能
    • スペースの入ったカラム名を対象にしたい場合は`を用いる
    • dropnaで特定のカラムを対象にしたい場合はsubset=[]を用いる

カラムの追加

  • assignを使う
    • パラメータがカラム名になる
    • lambda _ : _.カラム名.apply()が基本的な使い方
    • 先に辞書を作っておいてアンパックしても良い

with句、サブクエリー,join,union

  • with句、サブクエリーの代わりとして関数にまとめておく
  • joinはmerge
  • unionはconcat

集計、並び替え

  • グループ分けはgroupby
  • デフォルトではindexを作るのでas_index=False
  • 集計はagg
    • カラムと集計処理を辞書で渡せる
  • ウィンドウ関数はtransform
  • 並び替えはsort_values
    • descはascending = False
  • limitはhead,tailを用いる

複雑な加工

  • クロス集計はpd.crosstab
  • ピボットテーブル、横変換はdf.pivot_table(index,columns,value,fillna)
  • 縦変換はdf.melt