diff --git a/brancheneinstufung.py b/brancheneinstufung.py index d7bebbfa..2c6df4d4 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -9098,10 +9098,20 @@ class DataProcessor: self.logger.info(f"Verteilung der neuen Techniker-Buckets:\n{df_filtered['Techniker_Bucket'].value_counts(normalize=True, dropna=False).sort_index().round(3)}") # --- Kategoriale Features vorbereiten (Branche) --- - self.logger.info("Verarbeite kategoriales Feature 'branche_crm' fuer One-Hot Encoding...") - branche_col_internal = "branche_ki" - df_filtered.loc[:, 'branche_ki'] = df_filtered['branche_crm'].astype(str).fillna('Unbekannt').str.strip() + branche_col_internal = "branche_ki" # << KORRIGIERT: Den neuen internen Namen verwenden + self.logger.info(f"Verarbeite kategoriales Feature '{branche_col_internal}' (aus Spalte AL) fuer One-Hot Encoding...") + + # Sicherstellen, dass die Spalte existiert + if branche_col_internal not in df_filtered.columns: + self.logger.critical(f"FEHLER: Spalte '{branche_col_internal}' nicht im DataFrame fuer One-Hot Encoding gefunden.") + return None + + # Greife auf 'branche_ki' zu und weise das Ergebnis auch wieder 'branche_ki' zu + df_filtered.loc[:, branche_col_internal] = df_filtered[branche_col_internal].astype(str).fillna('Unbekannt').str.strip() + + # Verwende den korrekten internen Namen für das One-Hot Encoding df_encoded = pd.get_dummies(df_filtered, columns=[branche_col_internal], prefix='Branche', dummy_na=False) + self.logger.info(f"One-Hot Encoding fuer '{branche_col_internal}' durchgefuehrt...") # --- Finale Auswahl der Features fuer das Modell --- feature_columns_ml = [col for col in df_encoded.columns if col.startswith('Branche_')]