Start fixing forecast service 16
This commit is contained in:
@@ -27,6 +27,21 @@ class BakeryDataProcessor:
|
||||
self.imputers = {} # Store imputers for missing value handling
|
||||
self.date_alignment_service = DateAlignmentService()
|
||||
|
||||
def _ensure_timezone_aware(self, df: pd.DataFrame, date_column: str = 'date') -> pd.DataFrame:
|
||||
"""Ensure date column is timezone-aware to prevent conversion errors"""
|
||||
if date_column in df.columns:
|
||||
# Convert to datetime if not already
|
||||
df[date_column] = pd.to_datetime(df[date_column])
|
||||
|
||||
# If timezone-naive, localize to UTC
|
||||
if df[date_column].dt.tz is None:
|
||||
df[date_column] = df[date_column].dt.tz_localize('UTC')
|
||||
# If already timezone-aware but not UTC, convert to UTC
|
||||
elif str(df[date_column].dt.tz) != 'UTC':
|
||||
df[date_column] = df[date_column].dt.tz_convert('UTC')
|
||||
|
||||
return df
|
||||
|
||||
async def prepare_training_data(self,
|
||||
sales_data: pd.DataFrame,
|
||||
weather_data: pd.DataFrame,
|
||||
@@ -50,6 +65,11 @@ class BakeryDataProcessor:
|
||||
# Step 1: Convert and validate sales data
|
||||
sales_clean = await self._process_sales_data(sales_data, product_name)
|
||||
|
||||
# FIX: Ensure timezone awareness before any operations
|
||||
sales_clean = self._ensure_timezone_aware(sales_clean)
|
||||
weather_data = self._ensure_timezone_aware(weather_data) if not weather_data.empty else weather_data
|
||||
traffic_data = self._ensure_timezone_aware(traffic_data) if not traffic_data.empty else traffic_data
|
||||
|
||||
# Step 2: Apply date alignment if we have date constraints
|
||||
sales_clean = await self._apply_date_alignment(sales_clean, weather_data, traffic_data)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user