Ü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:
|
if self.filename:
|
||||||
self.path = Path(self.filename)
|
self.path = Path(self.filename)
|
||||||
|
|
||||||
|
|
||||||
|
self.collect_allgemein()
|
||||||
self.collect_cmdb_daten_gg()
|
self.collect_cmdb_daten_gg()
|
||||||
self.collect_cmdb_daten_erw()
|
self.collect_cmdb_daten_erw()
|
||||||
|
|
||||||
def collect_cmdb_daten_gg(self):
|
def collect_cmdb_daten_gg(self):
|
||||||
# Einlesen der Sheets allgemein
|
# 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
|
# Nach relevanten Spalten filtern Grundgeraete
|
||||||
# Sheet VTE
|
# Sheet VTE
|
||||||
@@ -58,6 +56,9 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
# Sheet CMDB
|
# Sheet CMDB
|
||||||
self.df_cmdb_gg = self.df_cmdb[self.df_cmdb['Filter'] == 'Grundgerät']
|
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
|
# Teil Grundgeräte
|
||||||
self.df_cmdb_gg = self.df_cmdb_gg.drop(
|
self.df_cmdb_gg = self.df_cmdb_gg.drop(
|
||||||
@@ -99,7 +100,8 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
print("Spaltenheader mit Sonderzeichen:", columns_with_special_chars)
|
print("Spaltenheader mit Sonderzeichen:", columns_with_special_chars)
|
||||||
|
|
||||||
# Führende Leerzeichen in allen Spalten entfernen
|
# 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
|
# Alle Floats in Strings umwandeln
|
||||||
self.dfb_gg = self.dfb_gg.applymap(lambda x: str(x) if isinstance(x, float) else x)
|
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 ################################################################################
|
############## Erweiterung ################################################################################
|
||||||
# Kopieren
|
# Kopieren
|
||||||
self.df_vte_erw = self.df_vte
|
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
|
# Auffüllen der Spalte Hostname
|
||||||
self.df_vte_erw['Hostname']= self.df_vte_erw['Hostname'].replace('', np.nan)
|
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
|
# Nach relevanten Spalten filtern Erweiterung
|
||||||
self.df_vte_erw = self.df_vte_erw[self.df_vte_erw['Gruppierung'] == 'Erweiterung']
|
self.df_vte_erw = self.df_vte_erw[self.df_vte_erw['Gruppierung'] == 'Erweiterung']
|
||||||
|
|
||||||
print("Self_ERW: ",self.df_vte_erw['Hostname'])
|
# Auf reellen Zeilenindex setzen, ab 0
|
||||||
self.df_vte_erw = self.df_vte_erw.reset_index(drop=True)
|
#self.df_vte_erw = self.df_vte_erw.reset_index(drop=False)
|
||||||
|
|
||||||
self.df_cmdb_erw = self.df_cmdb
|
#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'].replace('', np.nan)
|
||||||
|
|
||||||
self.df_cmdb_erw['Hostname'] = self.df_cmdb_erw['Hostname'].fillna(method='ffill')
|
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[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(
|
self.df_cmdb_erw = self.df_cmdb_erw.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]'])
|
||||||
|
|
||||||
# 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])
|
#self.dfb_erw = (pd.concat([self.df_cmdb_erw, self.df_vte_erw])
|
||||||
# .sort_index(kind='stable')
|
# .sort_index(kind='stable')
|
||||||
# .reset_index(drop=True)
|
# .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)
|
ic(self.dfb_erw)
|
||||||
|
|
||||||
@@ -437,6 +465,13 @@ class MainUI(QDialog): # erbt von QDialog
|
|||||||
print("Datei wurde gespeichert:", self.savefilename)
|
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__":
|
if __name__ == "__main__":
|
||||||
app = QApplication(sys.argv)
|
app = QApplication(sys.argv)
|
||||||
ui = MainUI()
|
ui = MainUI()
|
||||||
|
|||||||
Reference in New Issue
Block a user