pandas locのチートシート
概要
- dataframeにはindexとカラム名を指定して操作する
loc
というメソッドが存在する loc
では指定したindexのアクセス以外にも、代入やapply
もサポートしている
具体例
import pandas as pd
import numpy as np
df = pd.DataFrame({"v": np.random.random(1000)})
# vが0.5より大きいindexを取り出す
index = df.query("v > 0.5").index
# vが0.5より大きい箇所に"p"というカラムを新設
# 0.1が代入されていない0.5以下のrowには"NaN"が入る
df.loc[index, "p"] = 0.1
# pに0.1を加える
# pがNaNのとき、足し算は行われない
df["p"] += 0.1
# vが0.5より大きいrowにたいしてpを引数にapply
df.loc[index, "p"].apply(lambda x: "nanです" if np.isnan(x) else x + 0.1))
# 代入も可能である
df.loc[index, "p"] = df.loc[index, "p"].apply(lambda x: "nanです" if np.isnan(x) else x + 0.1)
テンプレート
index同士の結合
pd.concat
では結合できないnp.hstack([index1, index2, ...])
で結合する