Lag features
Window features
Edge case 1: drop NaN
Edge case 1
Edge case 2: smaller window size
Edge case 2
df['y'].rolling(window=3).agg(["mean","min"]).shift(periods=1)
df['y'].rolling(window=3, min_periods=1).agg(["mean","min"]).shift(periods=1)
from feature_engine.timeseries.forecasting import WindowFeatures
transformer = WindowFeatures(
variables = ['y'],
functions = ['mean', 'std'], # statistic
window = [1, 3, 6], # window size
freq = '1MS')
transformer.fit_transform(df)