Parcourir la source

added function for mapping tolerazen values

ogert il y a 4 ans
Parent
commit
341eb891e9
1 fichiers modifiés avec 41 ajouts et 0 suppressions
  1. 41 0
      cdplib/db_migration/MigrationCleaning.py

+ 41 - 0
cdplib/db_migration/MigrationCleaning.py

@@ -11,6 +11,7 @@ import sys
 import pandas as pd
 import numpy as np
 import gc
+from copy import deepcopy
 
 sys.path.append(os.getcwd())
 
@@ -586,6 +587,46 @@ class MigrationCleaning:
         return data[[c for c in data.columns if (c in mapping_fields) or (c in mongo_fields)]]
 
 
+    def map_toleranzen_values(self, data: pd.DataFrame, toleranzen: pd.DataFrame):
+        
+        toleranzen.drop('nr', axis=1, inplace=True)
+        
+        toleranzen.columns = ['toleranzbez_wellen_reference', 'toleranzbez_innenring_reference', 'wellenschenkel.geometrie.durchmesser.min', 'wellenschenkel.geometrie.durchmesser.max', 'innenring.geometrie.durchmesser.min',
+                        'innenring.geometrie.durchmesser.max', 'wellenschenkel_innenring_difference.geometrie.durchmesser.min', 'wellenschenkel_innenring_difference.geometrie.durchmesser.max']
+
+        labyrinten_drop_columns = ['innenring.geometrie.durchmesser.min', 'innenring.geometrie.durchmesser.max', 
+                                    'wellenschenkel_innenring_difference.geometrie.durchmesser.min', 'wellenschenkel_innenring_difference.geometrie.durchmesser.max']
+        labyrinten_columns= ['toleranzbez_wellen_reference', 'toleranzbez_innenring_reference', 'labyrinthring.geometrie.durchmesser.min', 'labyrinthring.geometrie.durchmesser.max']
+        reparatur_stufe_labyrinten_columns= ['toleranzbez_wellen_reference', 'toleranzbez_innenring_reference', 'labyrinthring.reparatur_stufe.geometrie.durchmesser.min', 'labyrinthring.reparatur_stufe.geometrie.durchmesser.max']
+
+
+        reparatur_stufe_columns = ['toleranzbez_wellen_reference', 'toleranzbez_innenring_reference', 'wellenschenkel.reparatur_stufe.geometrie.durchmesser.min', 
+                                    'wellenschenkel.reparatur_stufe.geometrie.durchmesser.max', 'innenring.geometrie.reparatur_stufe.durchmesser.min',
+                                    'innenring.reparatur_stufe.geometrie.durchmesser.max', 'wellenschenkel_innenring_difference.reparatur_stufe.geometrie.durchmesser.min', 
+                                    'wellenschenkel_innenring_difference.reparatur_stufe.geometrie.durchmesser.max']
+
+        
+        toleranzen_reference_columns = ['wellenschenkel_toleranz', 'labyrinthring_toleranz', 'wellen_reparatur_stufe_toleranz', 'labyrinthring_reparatur_stufe_toleranz']
+        available_columns = [column for column in data.columns if column in toleranzen_reference_columns]
+        for column in available_columns:
+            if 'toleranz' in column:
+                temp_toleranzen = deepcopy(toleranzen)
+
+                if 'labyrinthring' in column:
+                    temp_toleranzen.drop(labyrinten_drop_columns, axis=1, inplace=True)
+                    if 'reparatur_stufe' in column:
+                        temp_toleranzen.columns = reparatur_stufe_labyrinten_columns
+                    else:
+                        temp_toleranzen.columns = labyrinten_columns
+                
+                elif 'reparatur_stufe' in column:
+                    temp_toleranzen.columns = reparatur_stufe_columns
+                    
+                data = data.merge(temp_toleranzen, how='left', left_on=column, right_on='toleranzbez_wellen_reference')
+                data.drop(['toleranzbez_wellen_reference', 'toleranzbez_innenring_reference'], axis=1, inplace=True)
+
+        return data
+
 if __name__ == "__main__":
 
     # testing