Spaces:
Build error
Build error
| import pandas as pd | |
| import plotly.express as px | |
| from prophet import Prophet | |
| class ForecastEngine: | |
| def forecast(self, df, date_col, val_col): | |
| # Validate column presence | |
| if date_col not in df.columns or val_col not in df.columns: | |
| raise ValueError(f"Selected columns not found: {date_col}, {val_col}") | |
| df2 = df[[date_col, val_col]].copy() | |
| df2.rename(columns={date_col: "ds", val_col: "y"}, inplace=True) | |
| # Convert datetime with validation | |
| df2["ds"] = pd.to_datetime(df2["ds"], errors="coerce") | |
| df2.dropna(subset=["ds", "y"], inplace=True) | |
| if df2.empty: | |
| raise ValueError("Filtered DataFrame is empty. Check date/value columns.") | |
| model = Prophet() | |
| model.fit(df2) | |
| future = model.make_future_dataframe(periods=30) | |
| forecast = model.predict(future) | |
| fig = px.line(forecast, x="ds", y="yhat", title="Forecast") | |
| return forecast, fig | |