Вычислите отстающие значения. В функцию make_features() добавьте новый аргумент max_lag, который задаст максимальный размер отставания. Новые признаки назовите: 'lag_1', 'lag_2' — и до величины max_lag. Примените функцию к таблице и напечатайте на экране её первые пять строк (уже в прекоде).

Подсказка

Добавьте новые признаки в цикле:

for lag in range(1, max_lag + 1):
import pandas as pd
import numpy as np

data = pd.read_csv('https://code.s3.yandex.net/datasets/energy_consumption.csv', index_col=[0], parse_dates=[0])
data.sort_index(inplace=True)
data = data.resample('1D').sum()

def make_features(data, max_lag):
    data['year'] = data.index.year
    data['month'] = data.index.month
    data['day'] = data.index.day
    data['dayofweek'] = data.index.dayofweek
    
    for lag in range(1, max_lag + 1):
        data['lag_{}'.format(lag)] = data['PJME_MW'].shift(lag)

make_features(data, 4)
print(data.head())

Результат

             PJME_MW  year  month  day  dayofweek     lag_1     lag_2  \
Datetime                                                                
2002-01-01  714857.0  2002      1    1          1       NaN       NaN   
2002-01-02  822277.0  2002      1    2          2  714857.0       NaN   
2002-01-03  828285.0  2002      1    3          3  822277.0  714857.0   
2002-01-04  809171.0  2002      1    4          4  828285.0  822277.0   
2002-01-05  729723.0  2002      1    5          5  809171.0  828285.0   

               lag_3     lag_4  
Datetime                        
2002-01-01       NaN       NaN  
2002-01-02       NaN       NaN  
2002-01-03       NaN       NaN  
2002-01-04  714857.0       NaN  
2002-01-05  822277.0  714857.0  
 

Признаков стало ещё больше! Ряды, варите дальше!