Pythonで条件を指定してデータを抽出する方法です。
使用するのは、PythonのPandasライブラリのqueryメソッドです。
このようなデータフレームを用意します。
import pandas as pd
import numpy as np
df = pd.DataFrame([['A','a',110], ['C','c',130], ['A', 'a',140],['B','b',120],['E','e',150],['C','c',160],['A','a',170]],
columns=['upper', 'lower', 'int'])
df
queryメソッドでは、条件式を文字列で指定します。
まず、upper列がAのデータを抽出してみます。
条件の値が文字列の場合にはこのようにダブルクオーテーションで囲むことを忘れないようにしましょう。
実行します。
指定した条件でデータを抽出できました。
df.query('upper == "A"')
次に、intが150以上の値を抽出してみましょう。
指定した条件でデータを抽出できました。
df.query('int >= 150')
条件を複数指定することもできます。
ブール演算子のandを併用して抽出してみましょう。
指定した複数の条件でデータを抽出できました。
df.query('lower == "a" and int > 130')
なお、queryメソッドに似たメソッドでisinメソッドがあります。
isinメソッドでは、列に含まれる条件の値をリストで指定し、結果をTrueまたはFalseで返します。
例えばlower列がeまたはcであるデータのみ抽出したい場合にはこのようになります。
isinメソッドはブール型で結果が表示されるため、予めデータフレームに指定して実行します。
AとCのみのデータを抽出できました。