Python Pandas入門 – データフレームから条件に合う行のサブセットを抽出する方法
Pandasのデータフレームから行のサブセット(一部の行)を取得するには、条件式を使ってデータを絞り込みます。この手法は「ブールインデックス参照」と呼ばれ、データ分析で最もよく使われる操作のひとつです。
使用するCSVファイル
ここでは、Microsoft Excelで開いた次のようなCSVファイル(SalesData.csv)を例にします。車種名(Car)、登録価格(Reg_Price)、販売台数(Units)の3つの列を持つデータです。

CSVファイルをデータフレームとして読み込む
まず、read_csv()メソッドを使って、CSVファイルのデータをPandasのデータフレームに読み込みます。
dataFrame = pd.read_csv("C:\Users\amit_\Desktop\SalesData.csv")
条件を指定して行を抽出する
たとえば「Units(販売台数)が100より大きい」車のレコードだけを取り出したい場合は、次のように記述します。
dataFrame[dataFrame["Units"] > 100]
角括弧の中に条件式を直接書くだけで、条件を満たす行だけが抽出されます。非常にシンプルですね。
同様に、「Reg_Price(登録価格)が3000未満」のレコードを抽出したい場合は、以下のようにします。
dataFrame[dataFrame["Reg_Price"] < 3000]
なお、複数の条件を組み合わせたい場合は、&(AND)や|(OR)を使ってdataFrame[(dataFrame["Units"] > 100) & (dataFrame["Reg_Price"] < 3000)]
のように書くこともできます。
サンプルコード(完全な例)
以下が実際のコード全体です。
import pandas as pd
# CSVファイルからデータフレームへデータを読み込む
dataFrame = pd.read_csv("C:\Users\amit_\Desktop\SalesData.csv")
print("\nReading the CSV file...\n", dataFrame)
# 2つの列(Reg_PriceとUnits)を表示
res2 = dataFrame[['Reg_Price', 'Units']]
print("\nDisplaying two columns : \n", res2)
# 行のサブセットを選択:Unitsが100より大きい車
print("\nSelect cars with Units more than 100: \n", dataFrame[dataFrame["Units"] > 100])
# 行のサブセットを選択:Reg_Priceが3000未満の車
print("\nSelect cars with Reg_Price less than 3000: \n", dataFrame[dataFrame["Reg_Price"] < 3000])
実行結果
上記のコードを実行すると、次のような出力が得られます。
Reading the CSV file...
Car Reg_Price Units
0 BMW 2500 100
1 Lexus 3500 80
2 Audi 2500 120
3 Jaguar 2000 70
4 Mustang 2500 110
Displaying two columns :
Reg_Price Units
0 2500 100
1 3500 80
2 2500 120
3 2000 70
4 2500 110
Select cars with Units more than 100:
Car Reg_Price Units
2 Audi 2500 120
4 Mustang 2500 110
Select cars with Reg_Price less than 3000:
Car Reg_Price Units
0 BMW 2500 100
2 Audi 2500 120
3 Jaguar 2000 70
4 Mustang 2500 110
まとめ
このように、dataFrame[条件式]という形式を使えば、比較演算子(>、<、==など)を組み合わせて、目的の行だけを簡単に抽出できます。また、より高度な条件指定を行いたい場合はquery()メソッドを利用するのも便利です。
-
【Python】Pandas DataFrameからサブセット(列の一部)を選択する方法
Pandas DataFrameのサブセット選択とは? Pandasでは、DataFrameから必要な列や行だけを取り出す操作を「サブセットの選択」と呼びます。大きなデータセットから目的のデータだけを抽出できれば、分析や前処理の効率が大幅に向上します。 この記事では、CSVファイルを読み込んだDataFrameから、1つの列、および複数の列を選択する基本的な方法を解説します。 使用するCSVファイルの内容 今回使用する「SalesData.csv」は、Microsoft Excelで開くと以下のような内容になっています。 CSVファイルからDataFrameを作成する まず、pd.rea
-
【Python】Pandas DataFrameからnull(欠損値)行を削除する方法|dropna()の使い方
PandasのDataFrameからnull(NaN)行を削除するには、dropna()メソッドを使用します。この記事では、NaNを含むCSVファイルを読み込み、dropna()で欠損値を含む行を取り除くまでの手順を、サンプルコードと実行結果とともにわかりやすく解説します。前提:NaNを含むCSVファイル今回の例では、一部にNaN(null値)が含まれる以下のようなCSVファイル(CarRecords.csv)を使用します。手順1:read_csv()でCSVファイルを読み込むまずpandasをインポートし、read_csv()を使ってCSVファイルを読み込みます。ここではデスクトップ上に保存