Pythonのpandas
ライブラリには、データフレームから特定の条件に合致するデータを抽出するためのquery
メソッドがあります。この記事では、その使い方について詳しく解説します。
数値に関する条件
数値に関する条件は、列名に対して直接条件を記述します。例えば、以下のように年齢
が25より大きいデータを抽出することができます。
df_sample.query('年齢>25')
また、複数の条件を記述することも可能です。以下の例では、年齢
が25歳より大きくて、偶数であるデータを抽出しています。
df_sample.query('年齢>25 & 年齢%2==0 ')
文字列に関する条件
文字列に関する条件指定も可能です。文字列の条件指定には、文字列メソッドstr.XXX()
を使用します。
containsメソッド
ある文字列を含む、という条件はcontains()
を使用します。
df_sample.query('動物園.str.contains("どうぶつ")', engine='python')
startswithメソッド
先頭が〇〇で始まるもの、はstartswith()
で指定します。
df_sample.query('会員No.str.startswith("Z")', engine='python')
endswithメソッド
逆に〇〇で終わる、という条件でデータを抽出します。endswith()
を使用します。
df_sample.query('動物園.str.endswith("動物園")', engine='python')
正規表現を使用する
query
メソッドでは、正規表現を使用することも可能です。以下の例では、startswith()
とendswith()
と同じ条件を正規表現で抽出しています。
df_sample.query('会員No.str.contains("^Z")', engine='python')
df_sample.query('動物園.str.contains("動物園$")', engine='python')
以上、Pythonのquery
メソッドの使い方について解説しました。このメソッドを使うと、条件指定の表現が広がり、かなり複雑な条件抽出も可能となります。ぜひ活用してみてください。.