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.")
|
f"FEHLER: Spalte '{branche_col_internal}' (aus 'Chat Vorschlag Branche') nicht im DataFrame gefunden.")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# Normalisiere die Branchennamen aus dem Sheet für das Mapping
|
# Verwende die CRM Branche als Basis für die Gruppierung
|
||||||
normalized_sheet_branches = df_filtered[branche_col_internal].apply(
|
branche_col_internal = "branche_crm" # NEU: Wir verwenden die CRM-Branche als Feature
|
||||||
normalize_for_mapping)
|
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
|
if branche_col_internal not in df_filtered.columns:
|
||||||
df_filtered.loc[:, 'Branchen_Gruppe'] = normalized_sheet_branches.map(
|
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')
|
Config.BRANCH_GROUP_MAPPING).fillna('Sonstige')
|
||||||
|
|
||||||
self.logger.info("Mapping zu 'Branchen_Gruppe' durchgeführt.")
|
self.logger.info("Mapping zu 'Branchen_Gruppe' durchgeführt.")
|
||||||
|
|||||||
Reference in New Issue
Block a user