From 2e9f83147451c6174b86e85ae2bf7ab49876b186 Mon Sep 17 00:00:00 2001 From: Ben Letham Date: Wed, 3 Mar 2021 15:43:49 -0800 Subject: [PATCH] Check for NAs in holiday dataframe --- R/R/prophet.R | 3 +++ python/fbprophet/forecaster.py | 2 ++ 2 files changed, 5 insertions(+) diff --git a/R/R/prophet.R b/R/R/prophet.R index 19436a3..6318d04 100644 --- a/R/R/prophet.R +++ b/R/R/prophet.R @@ -169,6 +169,9 @@ validate_inputs <- function(m) { stop('Holidays dataframe must have ds field.') } m$holidays$ds <- as.Date(m$holidays$ds) + if (any(is.na(m$holidays))) { + stop('Found NA in the holidays dataframe.') + } has.lower <- exists('lower_window', where = m$holidays) has.upper <- exists('upper_window', where = m$holidays) if (has.lower + has.upper == 1) { diff --git a/python/fbprophet/forecaster.py b/python/fbprophet/forecaster.py index 40386c3..038ff8c 100644 --- a/python/fbprophet/forecaster.py +++ b/python/fbprophet/forecaster.py @@ -169,6 +169,8 @@ class Prophet(object): raise ValueError('holidays must be a DataFrame with "ds" and ' '"holiday" columns.') self.holidays['ds'] = pd.to_datetime(self.holidays['ds']) + if self.holidays.isnull().any().any(): + raise ValueError('Found a NaN in holidays dataframe') has_lower = 'lower_window' in self.holidays has_upper = 'upper_window' in self.holidays if has_lower + has_upper == 1: