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