Saar-Pfalz666 hat geschrieben: ↑Mittwoch 12. September 2018, 17:45
Gibt es hier eine Anweisung die Global wirkt ?
Oder muss ich alle df‘s einzeln parametrieren?
Da hat mir Google mittlerweile schon gute Dienste geleistet.
Hier nun mein fertiger Code. Er ist wohl nicht der schönste, aber er tut das was er soll.
Wie hätte man das mit dem "data.drop" schöner lösen können?
Jetzt wäre es noch was wenn ich die ungleichen nochmal als Tabelle raus bekommen würde. Das ist aber nur der Feinschliff.
Code: Alles auswählen
import pandas as pd
import numpy as np
data = pd.read_excel('data.xls', 'Sheet1', na_values=['NA'])
hcc = pd.read_excel('hcc.xls', 'Sheet1', na_values=['NA'])
hck = pd.read_excel('hck.xls', 'Sheet1', na_values=['NA'])
#Rundet alle Zahlen aus dem Sheet data.xls auf 2 Nachkommestellen
data = data.round(decimals=2)
#Filtert die Spalte "Bezeichung" und "Endprodukt" heraus, da diese in den Tabellen hcc & hck nicht vorhanden sind
data = data.drop('Bezeichnung', 1)
data = data.drop('Endprodukt', 1)
#Filtert irrelevante Zeilen heraus
data = data.drop('Start', 1)
data = data.drop('Ende', 1)
data = data.drop('Tage', 1)
data = data.drop('Zeitraum', 1)
#Sortiert den Dataframe neu
data = data.reindex(['TTNR', 'Startbestand', 'Zugänge', 'Abgänge', 'Endbestand', 'DLZ', 'Durchschnittsbestand', 'SummeBestand', 'SummeAbgang', 'Stufendurchschnitt', 'Disponent', *range(0)], axis=1)
#Legt die Tabellen hcc.xls und hck.xls zusammen in einen Dataframe
hcc_hck = hcc.append(hck, ignore_index=True)
#Rundet alle Zahlen aus der kombinierten Tabelle hcc.xls und hck.xls auf 2 Nachkommestellen
hcc_hck = hcc_hck.round(decimals=2)
#Filtert irrelevante Zeilen heraus
hcc_hck = hcc_hck.drop('Start', 1)
hcc_hck = hcc_hck.drop('Ende', 1)
hcc_hck = hcc_hck.drop('Tage', 1)
hcc_hck = hcc_hck.drop('Zeitraum', 1)
#Bildet aus data ein array
data_array = data.values
#Bildet aus hcc_hck ein array
hcc_hck_array = hcc_hck.values
#Mapping von data_array
data_check = set(map(tuple, data_array))
#Mapping von hcc_hck_array
hcc_hck_check = set(map(tuple, hcc_hck_array))
#Bildet die symetrische Differenz von data_check und hcc_hck_check
#Das bedeutet das nur Datensätze ausgegeben werden, bei denen nicht in beiden Dateien gleiche Werte gefunden werden
diff = data_check.symmetric_difference(hcc_hck_check)
#Gibt die Anzahl der Unterschiedlichen Datensätze an
len(diff)