【Python Pandas】条件に基づいてDataFrameの行を抽出する方法を解説
Pandasでは、条件を設定することでDataFrameから目的の行だけを簡単に抽出できます。条件の指定には、比較演算子(<、>、==など)や論理演算子(&、|など)を組み合わせて使用できます。
この記事では、「登録価格が1000未満」という条件でDataFrameの行を抽出する具体例を、コードと実行結果あわせて紹介します。
1. pandasライブラリのインポート
まず、必要なpandasライブラリをインポートします。
import pandas as pd
2. CSVファイルを読み込んでDataFrameを作成
read_csv()メソッドを使ってCSVファイルを読み込み、DataFrameを作成します。
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesRecords.csv")
3. 条件に一致する行を抽出する
登録価格(Reg_Price)が1000未満の行を抽出します。ここでは比較演算子「<」を使用します。条件式を角括弧 [] の中に記述すると、ブールインデックス参照により条件を満たす行のみが返されます。
dataFrame[dataFrame.Reg_Price < 1000]
完全なサンプルコード
以下が実際のコード全体です。
import pandas as pd
# CSVファイルを読み込む
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesRecords.csv")
print("DataFrame...\n", dataFrame)
# DataFrameの行数と列数を確認
print("\nNumber of rows and column in our DataFrame = ", dataFrame.shape)
# 登録価格が1000未満の行を抽出
resData = dataFrame[dataFrame.Reg_Price < 1000]
print("DataFrame...\n", resData)
実行結果
上記のコードを実行すると、次のような出力が得られます。
DataFrame...
Car Date_of_Purchase Reg_Price
0 BMW 10/10/2020 1000
1 Lexus 10/12/2020 750
2 Audi 10/17/2020 750
3 Jaguar 10/16/2020 1500
4 Mustang 10/19/2020 1100
5 Lamborghini 10/22/2020 1000
Number of rows and column in our DataFrame = (6, 3)
DataFrame...
Car Date_of_Purchase Reg_Price
1 Lexus 10/12/2020 750
2 Audi 10/17/2020 750
出力結果のポイント
元のDataFrameには6行のデータが含まれていますが、条件「Reg_Price < 1000」を適用した結果、該当するのはLexus(750)とAudi(750)の2行のみです。このように、ブールインデックス参照を使えば、数値条件に合致する行だけをシンプルな記述で取り出せます。
また、複数条件を組み合わせたい場合は、&(AND)や |(OR)を使って以下のように記述できます。
# 複数条件の例:価格が800以上かつ1200以下の行を抽出 resData = dataFrame[(dataFrame.Reg_Price >= 800) & (dataFrame.Reg_Price <= 1200)]
条件による行の抽出はデータ分析の基本操作なので、ぜひマスターしておきましょう。
-
Python Pandas入門 – データフレームから条件に合う行のサブセットを抽出する方法
Pandasのデータフレームから行のサブセット(一部の行)を取得するには、条件式を使ってデータを絞り込みます。この手法は「ブールインデックス参照」と呼ばれ、データ分析で最もよく使われる操作のひとつです。 使用するCSVファイル ここでは、Microsoft Excelで開いた次のようなCSVファイル(SalesData.csv)を例にします。車種名(Car)、登録価格(Reg_Price)、販売台数(Units)の3つの列を持つデータです。 CSVファイルをデータフレームとして読み込む まず、read_csv()メソッドを使って、CSVファイルのデータをPandasのデータフレームに読み込み
-
【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ファイルを読み込みます。ここではデスクトップ上に保存