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

Python Pandas入門 – DataFrameのtail()関数で末尾の行を抽出する方法

products.csvファイルを読み込み、price(価格)列の値が30,000〜50,000の範囲に含まれる行を抽出したうえで、その中から最後の3行の「id」列と「product」列を表示するPythonコードを紹介します。なお、DataFrame.tail(n)はDataFrameの末尾n行を取得できる便利なメソッドで、解法2ではこのtail()関数を活用します。

期待される出力結果

price列の値が30,000〜50,000の範囲にある行のうち、id列とproduct列の最後の3行は次のようになります。

    id product
79 80 Truck
81 82 Bike
98 99 Truck

解法1:ilocスライシングを使う方法

  • products.csvファイルからデータを読み込み、変数dfに代入します。

df = pd.read_csv('products.csv')
  • pandasのスライシングを使い、price列(5列目・インデックス4)の値が30,000〜50,000の範囲にあるすべての行を取得します。

df[df.iloc[:,4].between(30000,50000)]

この結果をdf1に保存します。

  • 続けてスライシングを適用し、最初の2列(idとproduct)の最後の3行を取り出します。

df1.iloc[-3:,0:2]

コード例

動作をよりよく理解するために、次のコードを確認してみましょう。

import pandas as pd
df = pd.read_csv('products.csv')
df1 = df[df.iloc[:,4].between(30000,50000)]
print(df1.iloc[-3:,0:2])

出力

    id product
79 80 Truck
81 82 Bike
98 99 Truck

解法2:条件指定とtail()関数を使う方法

  • products.csvファイルからデータを読み込み、変数dfに代入します。

df = pd.read_csv('products.csv')
  • ブール条件(論理演算子&)を適用し、price列が30,000より大きく50,000未満であるすべての行を取得します。

df[(df['price']>30000) & (df['price']<50000)]

この結果をdf1に保存します。

  • df1からid列とproduct列を選択し、tail(3)で最後の3行だけをフィルタリングして取得します。

df1[['id','product']].tail(3)

コード例

こちらも実際のコードで確認してみましょう。

import pandas as pd
df = pd.read_csv('products.csv')
df1 = df[(df['price']>30000) & (df['price']<50000)]
print(df1[['id','product']].tail(3))

出力

    id product
79 80 Truck
81 82 Bike
98 99 Truck

まとめ

特定の条件で絞り込んだDataFrameの末尾の行を取得したい場合は、iloc[-3:,0:2]のような位置ベースのスライシングでも、tail(3)のような行数指定メソッドでも同じ結果が得られます。tail()は列名を意識せず直感的に書けるのが魅力で、可読性の高いコードを書きたい場合におすすめです。一方、列と行の両方を同時に制御したい場面ではilocが便利です。用途に応じて両者を使い分けるとよいでしょう。

  1. 【Python】Pandas DataFrameからサブセット(列の一部)を選択する方法

    Pandas DataFrameのサブセット選択とは? Pandasでは、DataFrameから必要な列や行だけを取り出す操作を「サブセットの選択」と呼びます。大きなデータセットから目的のデータだけを抽出できれば、分析や前処理の効率が大幅に向上します。 この記事では、CSVファイルを読み込んだDataFrameから、1つの列、および複数の列を選択する基本的な方法を解説します。 使用するCSVファイルの内容 今回使用する「SalesData.csv」は、Microsoft Excelで開くと以下のような内容になっています。 CSVファイルからDataFrameを作成する まず、pd.rea

  2. PythonでPandas DataFrameを棒グラフとして可視化する方法

    データ分析において、PandasのDataFrameを視覚的に表現することは非常に重要です。この記事では、CSVファイルから読み込んだデータをmatplotlibを使って棒グラフ(バーチャート)として表示する方法を解説します。 前提条件:サンプルデータ 今回は以下のような内容のCSVファイル(SalesData.csv)を使用します。 Car Reg_Price 0 BMW 2000 1 Lexus 1500 2 Audi 1500 3 Jaguar 2000 4 Mustang