Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python・pandas】ilocでDataFrameから特定の値を検索し、該当行を表示する方法

pandasでは、DataFrame内に含まれる特定の値を簡単に検索できます。本記事ではilocを使用して、条件に一致する値を取得し、その行全体を表示する方法を解説します。

1. ライブラリのインポート

まず、必要なライブラリをインポートします。

import pandas as pd

2. サンプルDataFrameの作成

次に、4つの列(車名・排気量・登録価格・販売台数)を持つDataFrameを作成します。

dataFrame = pd.DataFrame({
   "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
   "Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000],
   "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000],
   "Units_Sold": [100, 120, 150, 110, 200, 250]
})

3. 特定の値を検索する

ここでは例として、「登録価格(Reg_Price)が5000」である車を検索します。forループで各行の値を順番に確認し、条件に一致した行のインデックス番号を変数に格納します。

for i in range(len(dataFrame.Car)):
   if 5000 == dataFrame.Reg_Price[i]:
      indx = i

4. 検索結果の表示

取得したインデックスをilocに渡すことで、該当する行全体を表示できます。

dataFrame.iloc[indx]

完全なサンプルコード

ここまでの手順をまとめたコードは以下の通りです。

import pandas as pd

# DataFrameの作成
dataFrame = pd.DataFrame({
   "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
   "Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000],
   "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000],
   "Units_Sold": [100, 120, 150, 110, 200, 250]
})

print("DataFrame ...\n", dataFrame)

# 登録価格が5000の車を検索
for i in range(len(dataFrame.Car)):
   if 5000 == dataFrame.Reg_Price[i]:
      indx = i

# 検索結果を表示
print("\nSearched DataFrame for the following specific value...\n", dataFrame.iloc[indx])

実行結果

上記のコードを実行すると、次のような出力が得られます。

DataFrame ...
        Car  Cubic_Capacity  Reg_Price  Units_Sold
0       BMW            2000       7000         100
1      Lexus            1800       1500         120
2      Tesla            1500       5000         150
3    Mustang            2500       8000         110
4   Mercedes            2200       9000         200
5     Jaguar            3000       6000         250

Searched DataFrame for the following specific value...
Car              Tesla
Cubic_Capacity    1500
Reg_Price         5000
Units_Sold         150
Name: 2, dtype: object

このように、登録価格が5000である「Tesla」の行データが正しく取得できていることがわかります。

補足:ブールインデックスによるより簡潔な検索方法

実務では、ループ処理を使わずブールインデックス(条件抽出)で記述するのが一般的です。以下のように1行で同じ結果を得られます。

result = dataFrame[dataFrame["Reg_Price"] == 5000]
print(result)

この方法はコードが短くなるだけでなく、条件に一致する行が複数存在する場合にもすべて抽出できるため、可読性と汎用性の両面でおすすめです。状況に応じて、ilocを使った方法と使い分けるとよいでしょう。

  1. PythonのMatplotlibでPandas DataFrameのヒストグラムを描画する方法

    ヒストグラムとは、データの分布を視覚的に表現したグラフです。PandasのDataFrameからヒストグラムを作成するには、Matplotlibのhist()メソッドを使用します。この記事では、具体的なコード例とともに、その手順をわかりやすく解説します。必要なライブラリのインポートまず、PandasとMatplotlibの2つのライブラリをインポートします。import pandas as pd import matplotlib.pyplot as pltDataFrameの作成次に、「Car(車名)」と「Reg_Price(登録価格)」の2つの列を持つDataFrameを作成します。dat

  2. Python・Pandas DataFrameで散布図を描画する方法

    散布図(Scatter Plot)は、2つの変数の関係を視覚的に把握するための代表的なデータ可視化手法です。Pandasでは plot.scatter() メソッドを使うことで、DataFrameのデータから簡単に散布図を作成できます。この記事では、チームごとのランキングポイントデータを例に、Pandas DataFrameから散布図を描画する手順を解説します。必要なライブラリのインポートまず、必要なライブラリをインポートします。データ操作には pandas、グラフの表示には matplotlib を使用します。import pandas as pd import matplotlib.pyp