Last active
April 10, 2019 14:21
-
-
Save simomarsili/86f1a1b3028291e83e992f38851620ce to your computer and use it in GitHub Desktop.
holidays dataframe for prophet forecasts (https://github.com/facebook/prophet)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def holidays_df(): | |
""" | |
Return a pd.DataFrame with holiday data for fb prophet. | |
The df has columns 'holiday' (string) and 'ds' (date type) | |
and optionally columns lower_window and upper_window which specify a | |
range of days around the date to be included as holidays. | |
original code here: https://github.com/peridoteagle/brew/blob/master/time_series/prophet.py | |
""" | |
import pandas as pd | |
superbowls = pd.DataFrame({ | |
'holiday': 'superbowls', | |
'ds': pd.to_datetime(['2017-02-05', '2018-02-04', '2018-02-03']), | |
# 'lower_window': -2, | |
# 'upper_window': 1, | |
}) | |
st_patricks = pd.DataFrame({ | |
'holiday': 'st_patricks', | |
'ds': pd.to_datetime(['2017-03-17', '2018-03-17', '2019-03-17']), | |
# 'lower_window': -3, | |
# 'upper_window': 1, | |
}) | |
dbmtp = pd.DataFrame({ | |
'holiday': 'dbmtp', | |
'ds': pd.to_datetime(['2017-05-06', '2018-10-20']), | |
# 'lower_window': 0, | |
# 'upper_window': 1, | |
}) | |
chili_cookoff = pd.DataFrame({ | |
'holiday': 'chili_cookoff', | |
'ds': pd.to_datetime(['2017-02-12', '2018-02-18']), | |
# 'lower_window': 0, | |
# 'upper_window': 1, | |
}) | |
new_years = pd.DataFrame({ | |
'holiday': 'new_years', | |
'ds': pd.to_datetime(['2018-01-01', '2019-01-01', '2020-01-01']), | |
# 'lower_window': -3, | |
# 'upper_window': 0, | |
}) | |
fourth_july = pd.DataFrame({ | |
'holiday': 'fourth_july', | |
'ds': pd.to_datetime(['2017-07-04', '2018-07-04', '2019-07-04', '2020-07-04']), | |
# 'lower_window': -3, | |
# 'upper_window': 0, | |
}) | |
memorial_day = pd.DataFrame({ | |
'holiday': 'memorial_day', | |
'ds': pd.to_datetime(['2017-05-29', '2018-05-28', '2019-05-27', '2020-05-25']), | |
# 'lower_window': -3, | |
# 'upper_window': 0, | |
}) | |
christmas = pd.DataFrame({ | |
'holiday': 'christmas', | |
'ds': pd.to_datetime(['2017-12-25', '2018-12-25', '2019-12-25', '2020-12-25']), | |
# 'lower_window': -3, | |
# 'upper_window': 0, | |
}) | |
thanksgiving = pd.DataFrame({ | |
'holiday': 'thanksgiving', | |
'ds': pd.to_datetime(['2017-11-23', '2018-11-22', '2019-11-28', '2020-11-26']), | |
# 'lower_window': -3, | |
# 'upper_window': 0, | |
}) | |
halloween = pd.DataFrame({ | |
'holiday': 'halloween', | |
'ds': pd.to_datetime(['2017-10-31', '2018-10-31', '2019-10-31', '2020-10-31']), | |
# 'lower_window': -3, | |
# 'upper_window': 0, | |
}) | |
holidays = pd.concat((superbowls, | |
st_patricks, | |
new_years, | |
fourth_july, | |
memorial_day, | |
christmas, | |
thanksgiving)) | |
return holidays |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment