Skip to content

Instantly share code, notes, and snippets.

@simomarsili
Last active April 10, 2019 14:21
Show Gist options
  • Save simomarsili/86f1a1b3028291e83e992f38851620ce to your computer and use it in GitHub Desktop.
Save simomarsili/86f1a1b3028291e83e992f38851620ce to your computer and use it in GitHub Desktop.
holidays dataframe for prophet forecasts (https://github.com/facebook/prophet)
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