Über den Index gemerget, muss nur noch die zeite Hostnamenspalte raus
This commit is contained in:
@@ -42,15 +42,13 @@ class MainUI(QDialog): # erbt von QDialog
|
||||
if self.filename:
|
||||
self.path = Path(self.filename)
|
||||
|
||||
|
||||
self.collect_allgemein()
|
||||
self.collect_cmdb_daten_gg()
|
||||
self.collect_cmdb_daten_erw()
|
||||
|
||||
def collect_cmdb_daten_gg(self):
|
||||
# Einlesen der Sheets allgemein
|
||||
self.df_vte = pd.read_excel(self.filename, header=7, na_filter=False, sheet_name='VTE-Input',
|
||||
usecols=['Hostname', 'Gruppierung', 'CONFIG-ID', 'CMDB Status'], engine='pyxlsb')
|
||||
|
||||
self.df_cmdb = pd.read_excel(self.filename, header=2, sheet_name="CMDB", engine='pyxlsb')
|
||||
|
||||
# Nach relevanten Spalten filtern Grundgeraete
|
||||
# Sheet VTE
|
||||
@@ -58,7 +56,10 @@ class MainUI(QDialog): # erbt von QDialog
|
||||
# Sheet CMDB
|
||||
self.df_cmdb_gg = self.df_cmdb[self.df_cmdb['Filter'] == 'Grundgerät']
|
||||
|
||||
|
||||
# Führende Leerzeichen in allen Spalten entfernen
|
||||
self.df_vte_gg = self.df_vte_gg.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x)
|
||||
self.df_cmdb_gg = self.df_cmdb_gg.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x)
|
||||
|
||||
# Teil Grundgeräte
|
||||
self.df_cmdb_gg = self.df_cmdb_gg.drop(
|
||||
columns=['WV-Start', 'WV-Ende', 'CMDB-Status', 'Aufgabe Schritt', 'Filter', 'Waermeabgabe [BTU/h]',
|
||||
@@ -99,7 +100,8 @@ class MainUI(QDialog): # erbt von QDialog
|
||||
print("Spaltenheader mit Sonderzeichen:", columns_with_special_chars)
|
||||
|
||||
# Führende Leerzeichen in allen Spalten entfernen
|
||||
self.dfb_gg = self.dfb_gg.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x)
|
||||
# Nach oben velegt
|
||||
#self.dfb_gg = self.dfb_gg.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x)
|
||||
|
||||
# Alle Floats in Strings umwandeln
|
||||
self.dfb_gg = self.dfb_gg.applymap(lambda x: str(x) if isinstance(x, float) else x)
|
||||
@@ -381,6 +383,11 @@ class MainUI(QDialog): # erbt von QDialog
|
||||
############## Erweiterung ################################################################################
|
||||
# Kopieren
|
||||
self.df_vte_erw = self.df_vte
|
||||
self.df_cmdb_erw = self.df_cmdb
|
||||
|
||||
# Führende Leerzeichen in allen Spalten entfernen
|
||||
self.df_vte_erw = self.df_vte_erw.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x)
|
||||
self.df_cmdb_erw = self.df_cmdb_erw.apply(lambda x: x.str.lstrip() if x.dtype == "object" else x)
|
||||
|
||||
# Auffüllen der Spalte Hostname
|
||||
self.df_vte_erw['Hostname']= self.df_vte_erw['Hostname'].replace('', np.nan)
|
||||
@@ -390,29 +397,50 @@ class MainUI(QDialog): # erbt von QDialog
|
||||
# Nach relevanten Spalten filtern Erweiterung
|
||||
self.df_vte_erw = self.df_vte_erw[self.df_vte_erw['Gruppierung'] == 'Erweiterung']
|
||||
|
||||
print("Self_ERW: ",self.df_vte_erw['Hostname'])
|
||||
self.df_vte_erw = self.df_vte_erw.reset_index(drop=True)
|
||||
|
||||
self.df_cmdb_erw = self.df_cmdb
|
||||
# Auf reellen Zeilenindex setzen, ab 0
|
||||
#self.df_vte_erw = self.df_vte_erw.reset_index(drop=False)
|
||||
|
||||
#debug
|
||||
#self.df_vte_erw.to_csv("VTE_ERW.csv", index=None, header=True,encoding='utf-8')
|
||||
|
||||
|
||||
# Füllen der leeren Zellen mit NaN, sonst git es Probleme bei ffill, so konnte ich fillna nutzen
|
||||
self.df_cmdb_erw['Hostname']= self.df_cmdb_erw['Hostname'].replace('', np.nan)
|
||||
|
||||
self.df_cmdb_erw['Hostname'] = self.df_cmdb_erw['Hostname'].fillna(method='ffill')
|
||||
|
||||
self.df_cmdb_erw = self.df_cmdb_erw[self.df_cmdb_erw['Filter'] == 'Erweiterung']
|
||||
self.df_cmdb_erw = self.df_cmdb_erw.reset_index(drop=True)
|
||||
|
||||
self.df_cmdb_erw = self.df_cmdb_erw.drop(
|
||||
columns=['WV-Start', 'WV-Ende', 'CMDB-Status', 'Aufgabe Schritt', 'Filter', 'Waermeabgabe [BTU/h]',
|
||||
'kalk. Strom [A]'])
|
||||
|
||||
# Zusammensetzen der Tabellen
|
||||
#self.dfb_erw = self.df_vte_erw.merge(self.df_cmdb_erw)
|
||||
self.dfb_erw = pd.concat([self.df_cmdb_erw, self.df_vte_erw], ignore_index=False)
|
||||
|
||||
|
||||
|
||||
|
||||
# Auf reellen Zeilenindex setzen, ab 0
|
||||
#self.df_cmdb_erw = self.df_cmdb_erw.reset_index(drop=False)
|
||||
|
||||
|
||||
# debug
|
||||
#self.df_cmdb_erw.to_csv("CMDB_ERW.csv", index=None, header=True, encoding='utf-8')
|
||||
|
||||
|
||||
# Zusammensetzen der Tabellen mit über Index, normal brachte mehr als doppelt soviele Zeilen
|
||||
#self.dfb_erw = self.df_vte_erw.merge(self.df_cmdb_erw, on=['Index'], how='left')
|
||||
self.dfb_erw = self.df_vte_erw.merge(self.df_cmdb_erw,left_index = True, right_index = True, how = 'inner')
|
||||
#self.dfb_erw = pd.concat([self.df_vte_erw, self.df_cmdb_erw], ignore_index=True)
|
||||
#self.dfb_erw = (pd.concat([self.df_cmdb_erw, self.df_vte_erw])
|
||||
# .sort_index(kind='stable')
|
||||
# .reset_index(drop=True)
|
||||
# )
|
||||
|
||||
# Bereinigen der Gesamttabelle, z.Zt nur SFPs gefiltert.
|
||||
# Wenn Netzteilbezeichnung vorhanden werde ich dies auch einbauen, genau wie jedes andere Zubehör auch
|
||||
|
||||
search = r'SFP'
|
||||
|
||||
self.dfb_erw = self.dfb_erw[self.dfb_erw['Modell'].str.contains(search, regex=True, na=False)]
|
||||
|
||||
ic(self.dfb_erw)
|
||||
|
||||
@@ -437,6 +465,13 @@ class MainUI(QDialog): # erbt von QDialog
|
||||
print("Datei wurde gespeichert:", self.savefilename)
|
||||
|
||||
|
||||
def collect_allgemein(self):
|
||||
self.df_vte = pd.read_excel(self.filename, header=7, na_filter=False, sheet_name='VTE-Input',
|
||||
usecols=['Hostname', 'Gruppierung', 'CONFIG-ID', 'CMDB Status'], engine='pyxlsb')
|
||||
|
||||
self.df_cmdb = pd.read_excel(self.filename, header=2, sheet_name="CMDB", engine='pyxlsb')
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app = QApplication(sys.argv)
|
||||
ui = MainUI()
|
||||
|
||||
Reference in New Issue
Block a user