Pythonでデータをずらす方法です。
使用するのは、PythonのPandasライブラリのshiftメソッドです。
このような簡単なデータフレームを作成します。
import pandas as pd
df = pd.DataFrame({'No.1': [10, 15, 12, 48, 32],
'No.2': [29, 1, 43, 18, 25],
'No.3': [38, 28, 16, 22, 49]},
index=['A', 'B', 'C', 'D', 'E'])
df
実行結果:
shiftメソッドの引数に何も指定せずに実行してみましょう。
データが1行分下にずれたのが確認できました。
このように、ずれた行は欠損値になります。
df.shift()
実行結果:
次に、データをずらす行数を指定してみましょう。
今回は2を指定して実行します。
データを2行分下にずらすことができました。
df.shift(2)
実行結果:
データを列方向にずらすには、引数にaxis=1を指定します。
実行します。
列方向をデータをずらすことができました。
df.shift(axis=1)
実行結果:
最後に、このような時系列データで試してみましょう。
df_date = pd.DataFrame({'x': range(1, 6)}, index=pd.date_range('2020-07-01', '2020-07-05'))
df_date
実行結果:
引数freqに期間を指定すると、その期間分データをずらすことができます。
実行します。
5日分ずらすことができました。
df_date.shift(freq='5D')
実行結果: