I was running your code in my system
Came across this minor issue.
Need to replace
train_df[date_col + "_week"] = train_df[date_col].dt.**year**
test_df[date_col + "_week"] = test_df[date_col].dt.**year**
with
train_df[date_col + "_week"] = train_df[date_col].dt.**week**
test_df[date_col + "_week"] = test_df[date_col].dt.**week**