-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Open
Description
Summary
Prophet crashes when processing dates outside the datetime64[ns] range, even though these dates could be valid with lower precision datetime types.
Expected Behavior
Prophet should either:
- Handle dates gracefully by using appropriate precision, or
- Provide a clear error message about supported date ranges
Actual Behavior
Prophet crashes with OutOfBoundsDatetime exception.
Minimal Reproduction
from prophet import Prophet
import pandas as pd
# Prophet crashes on dates outside datetime64[ns] range
df = pd.DataFrame({
'ds': ['3969-12-02', '3969-12-03'],
'y': [1.0, 2.0]
})
model = Prophet()
model.fit(df) # Fails with OutOfBoundsDatetime
Error Output
pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 3969-12-02, at position 0
Root Cause
The issue occurs in forecaster.py:1136:
self.history_dates = pd.to_datetime(pd.Series(df['ds'].unique(), name='ds')).sort_values()
Prophet internally converts all datetime inputs to datetime64[ns] regardless of the input format or required precision. This hardcoded conversion fails for dates outside the nanosecond timestamp range.
Environment
- Prophet version: 1.1.7
- Pandas version: 2.3.1
- Python version: 3.12.9
Metadata
Metadata
Assignees
Labels
No labels