pandasのquery()で複数条件を指定して条件抽出する方法


pandasの条件抽出ではdf.loc()を使っているサンプルが多い気がするが、読んでてややこしい

それに比べて、df.query()を使うと可読性が高い

後で見返したときでも分かりやすいので保守しやすくなるというメリットがある

乱数のデータフレームでちょっと実験

df = pd.DataFrame(np.random.randn(20, 2), columns=list('ab'))

a列が0より大きいデータを抽出したければ

df.query("a>0")

複数条件は&を使えばOK

df.query("a>0 & b>0")

よくある間違い

# NG
df.query("a>0" & "b>0")

&も””の中に入れるということを覚えておこう

 

参考

pandas.DataFrame.query — pandas 2.2.2 documentation

コメント

タイトルとURLをコピーしました