CMDB2CSV_Aufbaumaster.py isin beim Einlesen des CMDB Sheet entfernt, Erweiterung filtern kommt später
This commit is contained in:
@@ -4,6 +4,7 @@ import sys
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
from icecream import ic
|
from icecream import ic
|
||||||
|
import re
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
||||||
@@ -46,24 +47,25 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
|
|
||||||
def collect_grundgeraete(self):
|
def collect_grundgeraete(self):
|
||||||
# Einlesen der Sheets
|
# Einlesen der Sheets
|
||||||
self.df_vte = pd.read_excel(self.filename, header=7, na_filter=False, sheet_name="VTE-Input", engine='pyxlsb',
|
self.df_vte = pd.read_excel(self.filename, header=7, na_filter=False, sheet_name='VTE-Input',
|
||||||
usecols=['Hostname', 'Gruppierung', 'CONFIG-ID', 'CMDB Status'])
|
usecols=['Hostname', 'Gruppierung', 'CONFIG-ID', 'CMDB Status'], engine='pyxlsb')
|
||||||
# print(self.df_vte.head)
|
|
||||||
self.df_cmdb = pd.read_excel(self.filename, header=2, sheet_name="CMDB", engine='pyxlsb')
|
self.df_cmdb = pd.read_excel(self.filename, header=2, sheet_name="CMDB", engine='pyxlsb')
|
||||||
# self.df_sw_asset = pd.read_excel(self.filename,sheet_name="SW-Asset", engine='pyxlsb')
|
|
||||||
|
|
||||||
# Nach relevanten Spalten filtern
|
# Nach relevanten Spalten filtern
|
||||||
self.df_vte = self.df_vte[self.df_vte['Gruppierung'] == 'Grundgerät']
|
self.df_vte = self.df_vte[self.df_vte['Gruppierung'] == 'Grundgerät']
|
||||||
# self.df_vte = self.df_vte.drop(columns=['RAM','Bestelldatum','Hersteller','Lieferant','SAP-Nr.','Lieferdatum','Lieferschein-Nr.','WV-Start','WV-Ende','Aufgaben Schritt','Verkehrsart','Anz.\nHE '])
|
|
||||||
self.df_cmdb = self.df_cmdb[self.df_cmdb['Filter'].isin(['Grundgerät', 'Erweiterung'])]
|
self.df_cmdb = self.df_cmdb[self.df_cmdb['Filter'] == 'Grundgerät']
|
||||||
|
|
||||||
self.df_cmdb = self.df_cmdb.drop(
|
self.df_cmdb = self.df_cmdb.drop(
|
||||||
columns=['WV-Start', 'WV-Ende', 'CMDB-Status', 'Aufgabe Schritt', 'Filter', 'Waermeabgabe [BTU/h]',
|
columns=['WV-Start', 'WV-Ende', 'CMDB-Status', 'Aufgabe Schritt', 'Filter', 'Waermeabgabe [BTU/h]',
|
||||||
'kalk. Strom [A]'])
|
'kalk. Strom [A]'])
|
||||||
|
|
||||||
|
|
||||||
# Einfügen von Spalten in die CMDB-Tabelle
|
# Einfügen von Spalten in die CMDB-Tabelle
|
||||||
self.dfb = self.df_vte.merge(self.df_cmdb, on=['Hostname'], how='left')
|
self.dfb = self.df_vte.merge(self.df_cmdb, on=['Hostname'], how='left')
|
||||||
|
|
||||||
|
|
||||||
# Spalte für Mandanten Kontaktzuweisung
|
# Spalte für Mandanten Kontaktzuweisung
|
||||||
self.dfb.insert(loc=7, column='Mandanten Kontaktzuweisung', value='Mandant')
|
self.dfb.insert(loc=7, column='Mandanten Kontaktzuweisung', value='Mandant')
|
||||||
|
|
||||||
@@ -88,9 +90,17 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
# Masseinheit
|
# Masseinheit
|
||||||
self.dfb.insert(loc=18, column='Masseinheit', value='Zoll')
|
self.dfb.insert(loc=18, column='Masseinheit', value='Zoll')
|
||||||
|
|
||||||
|
# Spaltenanmen mit Sonderzeichen anzeigen
|
||||||
|
columns_with_special_chars = [col for col in self.dfb.columns if self.has_special_characters(col)]
|
||||||
|
|
||||||
|
print("Spaltenheader mit Sonderzeichen:", columns_with_special_chars)
|
||||||
|
|
||||||
# Führende Leerzeichen in allen Spalten entfernen
|
# Führende Leerzeichen in allen Spalten entfernen
|
||||||
self.dfb = self.dfb.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x)
|
self.dfb = self.dfb.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x)
|
||||||
|
|
||||||
|
# Alle Floats in Strings umwandeln
|
||||||
|
self.dfb = self.dfb.applymap(lambda x: str(x) if isinstance(x, float) else x)
|
||||||
|
|
||||||
self.dfb = self.dfb.apply(self.suche_Einschub, axis=1)
|
self.dfb = self.dfb.apply(self.suche_Einschub, axis=1)
|
||||||
|
|
||||||
self.dfb = self.dfb.apply(self.montageort, axis=1)
|
self.dfb = self.dfb.apply(self.montageort, axis=1)
|
||||||
@@ -105,15 +115,21 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
##############################################################################################
|
##############################################################################################
|
||||||
#def collect_erweiterung(self):
|
#def collect_erweiterung(self):
|
||||||
|
|
||||||
|
def has_special_characters(self, s):
|
||||||
|
# Regex pattern für Sonderzeichen
|
||||||
|
return bool(re.search(r'[^A-Za-z0-9]', s))
|
||||||
|
|
||||||
|
|
||||||
def suche_Einschub(self, einschub):
|
def suche_Einschub(self, einschub):
|
||||||
if einschub['Montageort'][-1] in ('v' 'h'):
|
if einschub['Montageort'][-1] in ('v','h'):
|
||||||
print (einschub['Montageort'])
|
print (einschub['Montageort'])
|
||||||
einschub['Einschub'] = einschub['Montageort'][-1]
|
einschub['Einschub'] = einschub['Montageort'][-1]
|
||||||
return einschub
|
return einschub
|
||||||
|
|
||||||
def montageort(self, montage):
|
def montageort(self, montage):
|
||||||
# Fehlerbereinigung
|
# Fehlerbereinigung
|
||||||
if montage['ID\nStandort'] not in ("Ber-PS", "Bon-BTW"):
|
ic(montage)
|
||||||
|
if montage['ID\nStandort']not in ("Ber-PS", "Bon-BTW"):
|
||||||
print("Kein Standort P40 oder BTW")
|
print("Kein Standort P40 oder BTW")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user