Pandasは、Pythonでデータ解析を行うための強力なライブラリです。データフレームという構造を用いて、データの操作や加工が容易になります。この記事では、Pandasのquery
メソッドの使い方について解説します。特に、変数を使用するパターンに焦点を当てます。
queryメソッドの基本概要
query
メソッドは、データフレーム内のデータを条件に従って抽出するために使用されます。このメソッドを使うことで、データフレームの行をフィルタリングしたり、特定の条件にマッチする行を抽出したりできます。
基本的な構文は以下の通りです。
dataframe.query('条件式')
変数を使用するqueryメソッドの使い方
query
メソッドでは、条件式の中で変数を使うことができます。これにより、動的に条件を変更することが可能になります。
変数を使った条件式は、以下のように@変数名
の形で指定します。
dataframe.query('カラム名 == @変数名')
これを使って具体的な例を見てみましょう。以下のサンプルデータを用いて解説します。
import pandas as pd
data = {
'名前': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'年齢': [25, 30, 35, 40, 45],
'性別': ['F', 'M', 'M', 'M', 'F']
}
df = pd.DataFrame(data)
このデータフレームから、年齢が30歳以上の人を抽出したいとします。変数を使ってquery
メソッドを実行しましょう。
age_threshold = 30
result = df.query('年齢 >= @age_threshold')
print(result)
実行結果は以下の通りです。
名前 年齢 性別
1 Bob 30 M
2 Charlie 35 M
3 David 40 M
4 Eve 45 F
変数age_threshold
を使って、動的に年齢の閾値を変更できます。
このように、Pandasのquery
メソッドを使うことで、データフレーム内のデータを簡単に抽出・操作することができます。変数を利用することで、柔軟な条件指定も可能になります。
複数の条件を組み合わせる
query
メソッドでは、複数の条件を組み合わせてデータを抽出することもできます。条件を組み合わせる際には、&
(AND演算子)や|
(OR演算子)を使用します。複数の条件を組み合わせる場合、各条件を括弧で囲むことが重要です。
例えば、先ほどのサンプルデータを用いて、年齢が30歳以上かつ性別がF(女性)の人を抽出したい場合、以下のように記述します。
age_threshold = 30
gender = 'F'
result = df.query('(年齢 >= @age_threshold) & (性別 == @gender)')
print(result)
実行結果は以下の通りです。
名前 年齢 性別
4 Eve 45 F
カラム名にスペースが含まれる場合のqueryメソッドの使用
カラム名にスペースが含まれる場合、query
メソッド内ではバッククォート(`)でカラム名を囲むことで条件式に使用できます。
例えば、以下のようなデータフレームがあるとします。
data = {
'First Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Age': [25, 30, 35, 40, 45],
'Gender': ['F', 'M', 'M', 'M', 'F']
}
df = pd.DataFrame(data)
このデータフレームから、年齢が30歳以上の人を抽出する場合、以下のように記述します。
first_name = "Bob"
result = df.query('`First Name` == @first_name')
print(result)
実行結果は以下の通りです。
First Name Age Gender
1 Bob 30 M
以上が、Pandasのquery
メソッドの使い方に関する解説です。変数を使用することで、より柔軟な条件指定が可能になり、データ解析の効率が向上します。是非、日々のデータ解析作業に活用してみてください。
コメント