Categories
前処理

queryメソッドで条件にみたすデータを抽出する

pandasのDataFrameオブジェクトにあるqueryメソッドを使用すると、条件に合致するデータを簡単に抽出できます。このメソッドは、直感的な文字列形式で条件を指定できるため、複雑な条件でもコードを読みやすく保つことができます。

以下に、queryメソッドを使用してデータを抽出する方法を示します:

まず、サンプルのDataFrameを作成します:


import pandas as pd

sample_data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [24, 27, 22, 32],
    'city': ['New York', 'Los Angeles', 'Chicago', 'Miami'],
    'salary': [50000, 60000, 55000, 70000]
}
df = pd.DataFrame(sample_data)

次に、queryメソッドを使用して条件に合うデータを抽出します:


# 年齢が25歳以上のデータを抽出
result = df.query('age >= 25')
print(result)

このコードは、年齢が25歳以上の行のみを抽出します。

より複雑な条件を指定することも可能です:


# 年齢が25歳以上かつ給与が60000以上のデータを抽出
result = df.query('age >= 25 and salary >= 60000')
print(result)

文字列の条件も指定できます:


# 都市がNew YorkまたはLos Angelesのデータを抽出
result = df.query('city in ["New York", "Los Angeles"]')
print(result)

変数を使用して動的に条件を指定することも可能です:


min_age = 25
max_salary = 65000
result = df.query('age >= @min_age and salary <= @max_salary')
print(result)

queryメソッドは、条件式を文字列として受け取るため、複雑な条件でも読みやすいコードを維持できます。また、パフォーマンスの面でも最適化されているため、大規模なデータセットでも効率的に動作します。

このように、queryメソッドを使用することで、データフレームから特定の条件を満たす行を簡単に抽出できます。データ分析や前処理の際に、この方法を活用することで効率的にデータを扱うことができます。