Shifting Time Series Data

In time series analysis, shifting is a process of re-arranging time series data with some lag $n$ typically inorder to perform comparison (Year over Year, Month over Month) or implement a differencing operation.

Generating time series data

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
ts_index = pd.date_range( '2013-01-01', '2021-01-01', freq='Y' )
data = np.random.randint(56, 109, size=8)

ts_data = pd.DataFrame(data=data, index=ts_index, columns=['yearly_sales'])
ts_data
yearly_sales
2013-12-31 80
2014-12-31 93
2015-12-31 98
2016-12-31 66
2017-12-31 86
2018-12-31 96
2019-12-31 77
2020-12-31 88

Implementing Shift Operation

ts_data['last_year_sales'] = ts_data['yearly_sales'].shift(1)
ts_data
yearly_sales last_year_sales
2013-12-31 80 NaN
2014-12-31 93 80.0
2015-12-31 98 93.0
2016-12-31 66 98.0
2017-12-31 86 66.0
2018-12-31 96 86.0
2019-12-31 77 96.0
2020-12-31 88 77.0