Pythonのpandasライブラリには、データフレームから特定のデータを抽出するためのquery
とloc
という二つのメソッドがあります。これらのメソッドは似ていますが、それぞれ異なる特性と利点があります。
queryメソッド
query
メソッドは、文字列型の論理判断を引数に取ります。例えば、’age>30’という条件でデータを抽出したい場合、以下のように記述します。
df.query('age>30')
query
メソッドは、単一条件だけでなく、複数条件の抽出も可能です。また、関数や正規表現も利用できるため、自由度が高いと言えます。
locメソッド
一方、loc
メソッドは、行名と列名を指定してデータを抽出します。以下のように記述します。
df.loc[:, ['name','age']]
loc
メソッドは、行と列を直接指定するため、特定のデータを抽出する際には非常に便利です。
queryとlocのパフォーマンス
一般的に、loc
メソッドの方がquery
メソッドよりも高速です。これは、loc
がラベルベースのインデックスを使用し、データフレームからデータを選択するために最適化されているためです。一方、query
はブール式を使用するため、評価が遅くなる可能性があります。
しかし、抽出条件が非常に複雑で複数の列に関連する場合は、query
メソッドを使用することを検討してみてください。
以上がPythonのpandasライブラリのquery
とloc
メソッドの違いと使い方についての説明です。これらのメソッドを適切に使い分けることで、データ分析の効率を大幅に向上させることができます。