python DataFrameから複数条件で抽出して、DataFrameへ格納

未分類

比較演算子で条件指定

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

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