PythonのPandasのdiffメソッドについて

AI実装検定のご案内

Pandasの diff メソッド は、データの「差分」を計算するために使われる便利なメソッドです。

特に、時系列データや累積データから「前の値との差」を簡単に求めたいときによく利用されます。

ここでは、基礎から実用例まで詳しく解説します。

目次

基本的な使い方

import pandas as pd

s = pd.Series([10, 20, 25, 40, 60])
print(s.diff())
  • 先頭の要素は差分を取れないため NaN になります。
  • それ以降は 「現在の値 − 直前の値」 が表示されます。

主な引数

periods(デフォルト = 1)

  • 何個前の要素との差分を取るかを指定します。
  • 正の値なら「過去との差分」、負の値なら「未来との差分」を計算します。
print(s.diff(periods=2))

DataFrame に対する diff

Series だけでなく、DataFrame にも適用可能です。列ごとに差分を計算します。

df = pd.DataFrame({
    "A": [10, 15, 20, 40],
    "B": [100, 80, 60, 30]
})
print(df.diff())

実用的な利用シーン

前日比(株価や売上など)

dates = pd.date_range("2023-01-01", periods=5)
stock = pd.Series([100, 102, 101, 105, 110], index=dates)
print(stock.diff())

前日比の変動を簡単に求められます。

前年比・前年同期比

periods=12 を指定すれば「前年同月との差分」などもすぐに計算可能です。

sales = pd.Series([100, 120, 130, 150, 180, 200, 220, 250, 270, 300, 320, 350,
                   400, 420, 430, 450], 
                  index=pd.date_range("2022-01", periods=16, freq="M"))
print(sales.diff(periods=12))  # 前年同月比

データの変化検知

センサー値やログデータの変化点を探すときに有効。

例えば「差分が0なら変化なし」「差分が大きければ急変」といった解析に使えます。

diff とよく比較されるメソッド

  • shift:データを単純にずらすだけ。差分は自分で計算する必要あり。
  • pct_change:差分ではなく 「割合の変化率」 を計算する。株価の騰落率や売上成長率などで便利。
print(s.pct_change())  # 割合の変化率

まとめ

  • diff隣接する(または指定した期間前の)値との差 を計算する。
  • 引数 periods を変えることで「前日比」「前年同期比」など柔軟に対応可能。
  • DataFrame にも適用可能で、列ごとに差分を計算。
  • 株価の前日比、売上の前年同月比、センサー異常検知など、実務で広く利用される。

以上、PythonのPandasのdiffメソッドについてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次