この「1つ前のデータとの差分」のことを階差と呼びます。
pandasでは、diff()
を使うと階差を簡単に計算できます。
A | B | C | |
---|---|---|---|
0 | 5 | 5 | 10 |
1 | 15 | -15 | 100 |
2 | 105 | -105 | 10 |
Seriesのdiff()
の結果はSeriesになります。列A
について階差を求める場合、次のような結果になります。
# 列Aの階差(1つ前のデータとの差分)を求める
df["A"].diff()
0 NaN
1 10.0
2 90.0
Name: A, dtype: float64
最初の行は階差を取れないので、NaNになります。
引数periods
で、階差を取るデータの区間を指定できます。
たとえば2
を指定すると、2つ前のデータとの階差を計算します。
負の値も指定できます。-1
を指定すると「-1つ前のデータ」つまり「1つ後のデータ」との階差を計算します。
DataFrameのdiff()
では、各列または各行について階差を一括で計算します。結果はDataFrameになります。
他のメソッド同様、引数axis
で処理の方向を指定可能です。
0
: 行方向の処理。1つ前の行との階差を計算する。1
: 列方向の処理。1つ前の列との階差を計算する。
コメント