比較演算子で条件指定
df_new = df[df[‘age’] < 25]
★複数条件を指定
df_new = df[(df[‘age’] < 25) & (df[‘point’] > 65)]
query()メソッドを使う(否定はnot)
df_new = df.query(‘age < 25’)
df_new = df.query(‘not age < 25’)
一致、不一致は==, !=
df_new = df.query(‘state == “CA”‘)
df_new = df.query(‘state != “CA”‘)
★query()メソッドの条件文字列の中で変数を使用する ⇒ 変数名の前に@をつける。
val = 80
df_new = df.query(‘point > @val‘)
★複数条件を指定 ⇒ 「かつ」は&でもandでもどちらでもOK。
「または」も|でもorでもどちらでもOK。
3つ以上での条件も同様だが、andのほうがorより優先順位が高い
df_new = df.query(‘age < 25 & point > 65′)
df_new = df.query(‘age < 25 and point > 65′)
df_new = df.query(‘age < 25 | point > 65′)
df_new = df.query(‘age < 25 or point > 65′)
リスト内の要素にマッチするかで指定(isinでの条件指定と同等)
df_new = df[df[‘state’].isin([‘NY’, ‘TX’])]
df_new = df.query(‘state in [“NY”, “TX”]‘) # query()メソッドではinを使って同等の処理が可能
df_new = df.query(‘state == [“NY”, “TX”]‘) # ==とリストでもOK
★リスト内の要素にマッチ”しない”行を取得 ⇒ 前に~をつける
df_new = data[~data[‘a’].isin([1,2])]
参照元:
https://note.nkmk.me/python-pandas-query/
https://www.st-hakky-blog.com/entry/2017/11/14/162234