【毎日Python】Pythonでデータフレームの行ごと・列ごとの差を取得する方法|DataFrame.diff

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

実行結果:
main_df

まず、diffメソッドの引数に何も指定せずに実行してみましょう。
1行前の値との差を取得することができました。
例えば、2行目は、1行目との差が各要素の値となっています。
なお、1行目は、前の行が存在しないため差を算出することができず、欠損値となります。

df.diff()

実行結果:
df01

次に、差を取得する行を指定してみましょう。
引数に2を指定して実行します。
2行前の値との差を取得することができました。

df.shift(2)

実行結果:
df02

最後に、列方向で試してみましょう。
引数にaxis=1を指定して実行します。
1列前の値との差を取得することができました。

df.shift(axis=1)

実行結果:
df03

関連メソッド

【毎日Python】Pythonでデータフレームのデータをずらす方法|DataFrame.shift