Python・Pandasのquery()メソッドでデータを効率的にフィルタリングする方法
Pandasは、データクレンジングやデータ分析などに幅広く利用されているPythonのライブラリです。本記事では、query()メソッドを使用して、指定したデータセットから条件に合致するデータを抽出する方法を解説します。query()メソッドでは、単一の条件だけでなく、複数の条件を組み合わせた絞り込みも可能です。
データの読み込み
まず、Pandasライブラリを使ってCSVファイルのデータをDataFrameとして読み込みます。以下のプログラムがその基本的なコードです。
サンプルコード
import pandas as pd
# CSVファイルからDataFrameを読み込む
data = pd.read_csv("D:\\heart.csv")
print(data)実行結果
上記のコードを実行すると、次のような結果が出力されます。

単一条件によるデータ抽出
続いて、query()メソッドに単一の条件を指定してデータを抽出してみましょう。ここでは、コレステロール値(chol)が230未満の行だけを取り出しています。元の303行のうち、119行のみが結果として返されることが確認できます。
サンプルコード
import pandas as pd
# CSVファイルからDataFrameを読み込む
data = pd.read_csv("D:\\heart.csv")
# chol列が230未満の行を抽出
data.query('chol < 230', inplace=True)
# 結果を出力
print(data)実行結果
上記のコードを実行すると、次のような結果が出力されます。

複数条件によるデータ抽出
先ほどと同様の方法で、query()メソッドに複数の条件を適用することもできます。条件を追加することで、結果のデータセットはさらに絞り込まれます。ここでは、年齢(age)が60歳より大きいという条件を加えています。その結果、返される行数は79行になりました。
なお、複数条件を組み合わせる場合は、条件式全体を1つの文字列として渡す点に注意してください。
サンプルコード
import pandas as pd
# CSVファイルからDataFrameを読み込む
data = pd.read_csv("D:\\heart.csv")
# chol列が230未満かつage列が60より大きい行を抽出
data.query('chol < 230 and age > 60', inplace=True)
# 結果を出力
print(data)実行結果
上記のコードを実行すると、次のような結果が出力されます。

まとめ
Pandasのquery()メソッドを使えば、SQLのような直感的な条件式でDataFrameのデータを簡単にフィルタリングできます。単一条件でも複数条件でも柔軟に対応できるため、データ分析の前処理や探索的なデータ分析(EDA)において非常に便利な機能です。ぜひ実際のデータセットで試してみてください。
-
PythonのpandasでTRAIのモバイル回線速度データを分析・可視化する方法
このチュートリアルでは、Pythonのpandasパッケージを使って、インド電気通信規制庁(TRAI)が公開しているモバイル回線速度データを分析します。まずはTRAI公式サイトからデータファイルをダウンロードしましょう。データ取得の手順1. TRAIの公式サイト(https://myspeed.trai.gov.in/)にアクセスする。 2. ページの一番下までスクロールする。 3. 月別のモバイル速度データが公開されていることを確認する。 4. 9月分のモバイル速度データ(CSV)をダウンロードする。CSVファイルに含まれる主なカラムネットワーク名(通信事業者)ネットワーク技術(3G / 4
-
Pythonによるデータ分析と可視化入門|pandasの基本を徹底解説
Pythonによるデータ分析と可視化の概要 Pythonには、データ分析と可視化のための強力なライブラリが数多く用意されています。代表的なものとしては、NumPy、pandas、matplotlib、seabornなどが挙げられます。本記事では、その中でも中心的な役割を果たすpandasについて詳しく解説します。pandasはNumPyをベースに構築されたオープンソースライブラリで、高速なデータ分析やデータのクリーニング・前処理を効率的に行えます。さらに、pandas自体にも便利な可視化機能が組み込まれています。 pandasのインストール方法 pandasをインストールするには、ターミナル