query()メソッドを使用してPandasデータフレームをクエリする方法

Pandasデータフレームをクエリする方法をquery()メソッドで説明する

著者による画像

はじめに

pandasを使用してデータ分析を行っているが、まだPandasのqueryメソッドを知らない場合、あなただけではありません。queryメソッドは直感的で、クリーンで、DataFrameから行をフィルタリングする従来の方法よりも簡潔です。しかし、何らかの理由で、Pandasのqueryメソッドはそのシンプルさにもかかわらず、まだ広く使用されていません。

そこで、この記事では、Pandasのqueryメソッドとその構文、例を紹介し、すぐに使用できるようにします。

この記事の完全なコードは、こちらのGitHubからアクセスできます。

元の記事は、pythonsimplifed.comに2022年10月18日に掲載されました。

Pandasのqueryメソッド

Pandasのqueryメソッド(df.query())は、DataFrameの列をクエリし、必要な行のみをフィルタリングするために使用されます。

DataFrameから行をフィルタリングするために最も一般的に使用される方法は、ブールインデックスと位置インデックスの方法です。以下の例を参照して、ブールインデックスと位置インデックスとは何を意味するのかを理解します。例としてSeabornライブラリのtipsデータセットを使用します。

import pandas as pdimport seaborn as snsdf = sns.load_dataset('tips')

もし、非喫煙者(smoker=’No’)かつ女性の行のみを選択したい場合、ブールインデックスと位置インデックスを使用すると、以下のようにコードを記述します。

# ブールインデックスdf[ (df['smoker']=='No') & (df['sex'] =='Female') ]# 位置インデックスの使用df.loc[(df['smoker'] == 'No') & (df['sex'] == 'Female')]

しかし、上記のコードは、以下のようにqueryメソッドを使用して書き直すこともできます。直感的で、クリーンで、冗長さが少ないにもかかわらず、Pandasのユーザーによってqueryメソッドがしばしば見落とされていることがわかります。次のセクションでは、詳細なqueryメソッドを理解しましょう。

df.query('smoker == "No" & sex=="Female"')

構文

queryメソッドの構文は以下の通りです。

DataFrame.query(expr, inplace=False, **kwargs)
  • expr — フィルタリングするための式/条件です…

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more