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メソッドの使い方に関する解説です。変数を使用することで、より柔軟な条件指定が可能になり、データ解析の効率が向上します。是非、日々のデータ解析作業に活用してみてください。
関連記事
その他の技術系記事も書いています

 
  
  
  
  














コメント