Pythonでデータフレームの行ごと・列ごとの差を取得する方法です。
使用するのは、PythonのPandasライブラリのdiffメソッドです。
このようなデータフレームを使用します。
import pandas as pd
df = pd.DataFrame({'A': (100, 150, 200),
'B': (200, 250, 300),
'C': (130, 210, 180),
'D': (300, 410, 290)})
df
実行結果:
まず、diffメソッドの引数に何も指定せずに実行してみましょう。
1行前の値との差を取得することができました。
例えば、2行目は、1行目との差が各要素の値となっています。
なお、1行目は、前の行が存在しないため差を算出することができず、欠損値となります。
df.diff()
実行結果:
次に、差を取得する行を指定してみましょう。
引数に2を指定して実行します。
2行前の値との差を取得することができました。
df.shift(2)
実行結果:
最後に、列方向で試してみましょう。
引数にaxis=1を指定して実行します。
1列前の値との差を取得することができました。
df.shift(axis=1)
実行結果: