Fix Finale Stabilität durch Single Source of Truth
- REFACTOR: BRANCH_GROUP_MAPPING in `config.py` ist nun die einzige Quelle für gültige Branchen (Single Source of Truth). - CLEANUP: Redundante, hartcodierte Branchenliste und CSV-Ladelogik vollständig entfernt. - FIX: `initialize_target_schema` in `helpers.py` generiert erlaubte Branchen nun dynamisch aus dem Mapping. - FIX: `prepare_data_for_modeling` in `data_processor.py` nutzt nun konsistent die `CRM Branche` für das Mapping.
This commit is contained in:
@@ -5922,12 +5922,19 @@ class DataProcessor:
|
||||
f"FEHLER: Spalte '{branche_col_internal}' (aus 'Chat Vorschlag Branche') nicht im DataFrame gefunden.")
|
||||
return None
|
||||
|
||||
# Normalisiere die Branchennamen aus dem Sheet für das Mapping
|
||||
normalized_sheet_branches = df_filtered[branche_col_internal].apply(
|
||||
normalize_for_mapping)
|
||||
# Verwende die CRM Branche als Basis für die Gruppierung
|
||||
branche_col_internal = "branche_crm" # NEU: Wir verwenden die CRM-Branche als Feature
|
||||
self.logger.info(
|
||||
f"Verarbeite kategoriales Feature '{branche_col_internal}' und mappe es zu 'Branchen_Gruppe'...")
|
||||
|
||||
# Wende das hartcodierte Mapping aus der Config-Klasse an
|
||||
df_filtered.loc[:, 'Branchen_Gruppe'] = normalized_sheet_branches.map(
|
||||
if branche_col_internal not in df_filtered.columns:
|
||||
self.logger.critical(
|
||||
f"FEHLER: Spalte '{branche_col_internal}' nicht im DataFrame gefunden.")
|
||||
return None
|
||||
|
||||
# Wende das saubere Mapping aus der Config an. Die Schlüssel sind jetzt lesbar.
|
||||
# Wir müssen die Eingabedaten aus dem Sheet NICHT MEHR normalisieren.
|
||||
df_filtered.loc[:, 'Branchen_Gruppe'] = df_filtered[branche_col_internal].map(
|
||||
Config.BRANCH_GROUP_MAPPING).fillna('Sonstige')
|
||||
|
||||
self.logger.info("Mapping zu 'Branchen_Gruppe' durchgeführt.")
|
||||
|
||||
Reference in New Issue
Block a user