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

【Python】Pandasのgroupby.last()を使ってDataFrameのグループごとの最後の値を取得する方法

Pandasでグループごとの最後の値(各グループ内で最後に出現した行)を取得するには、groupby.last()メソッドを使用します。このメソッドは、指定した列でグループ化した後に、各グループの最後のレコードを抽出したい場合に非常に便利です。

ライブラリのインポート

まず、必要なライブラリをエイリアス付きでインポートします。

import pandas as pd

DataFrameの作成

次に、「Car(車)」「Place(場所)」「Units(台数)」の3つの列を持つDataFrameを作成します。

dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'BMW', 'Tesla', 'Lexus', 'Tesla'],
        "Place": ['Delhi', 'Bangalore', 'Pune', 'Punjab', 'Chandigarh', 'Mumbai'],
        "Units": [100, 150, 50, 80, 110, 90]
    }
)

列を基準にグループ化する

groupby()メソッドを使って、「Car」列を基準にDataFrameをグループ化します。

groupDF = dataFrame.groupby("Car")

グループごとの最後の値を計算

last()メソッドで各グループの最後の値を取得し、reset_index()でインデックスをリセットして見やすい形式に整えます。

res = groupDF.last()
res = res.reset_index()

完全なコード例

以下が完全なサンプルコードです。重複している値の中で最後に出現したもの、つまり各グループの最後の値が表示されます。

import pandas as pd

dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'BMW', 'Tesla', 'Lexus', 'Tesla'],
        "Place": ['Delhi', 'Bangalore', 'Pune', 'Punjab', 'Chandigarh', 'Mumbai'],
        "Units": [100, 150, 50, 80, 110, 90]
    }
)

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

# Car列でDataFrameをグループ化
groupDF = dataFrame.groupby("Car")

res = groupDF.last()
res = res.reset_index()

print("\nLast of group values = \n", res)

実行結果

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

DataFrame ...
     Car       Place  Units
0    BMW       Delhi    100
1  Lexus   Bangalore    150
2    BMW        Pune     50
3  Tesla      Punjab     80
4  Lexus  Chandigarh    110
5  Tesla      Mumbai     90

Last of group values =
     Car       Place  Units
0    BMW        Pune     50
1  Lexus  Chandigarh    110
2  Tesla      Mumbai     90

このように、同じ車種(BMW、Lexus、Tesla)が複数回出現している場合でも、groupby.last()を使えば各グループの最終行だけを簡単に抽出できます。データ分析において「最新の状態」や「最終記録」を確認したい場面で活用できる便利な手法です。

  1. Python Pandas入門:interpolate()メソッドでNaN値を補間して埋める方法

    はじめにPandasでは、interpolate()メソッドを使うことで、DataFrame内の欠損値(NaN)を補間によって効率的に埋めることができます。このメソッドは、前後の値をもとに線形補間を行い、データの流れを保ちながら自然な形で欠損値を推定します。ここでは、Microsoft Excelで開いた以下のようなCSVファイルを例に説明します。このデータには一部NaN値が含まれています。1. CSVファイルからデータを読み込むまず、read_csv()関数を使って、CSVファイルのデータをPandas DataFrameに読み込みます。dataFrame = pd.read_csv(C:\

  2. 【Python Pandas】fillnaで欠損値(NaN)を後方の値で埋める方法(bfill)

    はじめに PandasのDataFrameには、データの読み込みミスや入力漏れなどによって欠損値(NaN)が含まれることがあります。このような欠損値を処理する方法のひとつが、「後ろにある有効な値を前方向きに引き継いで埋める」という後方補完(Backward Fill)です。 本記事では、fillna()メソッドのmethodパラメータにbfillを指定して、null以外の値を後方から伝播させる方法を解説します。 bfillの基本的な使い方 後方補完を行うには、fillna()メソッドの引数に以下のように指定します。 fillna(method=bfill) bfillは「backward f