Daten bereinigen und validieren¶
„Garbage In, Garbage Out“ ist der verzweifelte Hinweis, dass aus mangelhaften Daten kaum gute Erkenntnisse gezogen werden können. Zwar gibt es stark regulierte, sicherheitskritische Bereiche, in denen Daten routinemäßig in allen Phasen überprüft werden, das allgemeine Niveau der Datenvalidierung ist in den meisten Analyseprojekten jedoch eher gering.
Wenn wir jedoch Code schreiben, um Daten auszuwerten, die Daten jedoch nicht vorher überprüfen, werden einige Ergebnisse irreführend, falsch oder ungültig sein. Ähnlich verhält es sich, wenn wir unsere Ausgaben nicht validieren. So tragen wir dann auch noch zu den „schlechten Daten“ bei, gegen das wir alle wettern. Hilfreich ist hier das Postelsche Gesetz, für das im TCP-Standard vorgeschlagene Prinzip der Robustheit:
„Sei konservativ in dem, was du tust, sei liberal in dem, was du von anderen akzeptierst.“ [1]
Dies steht in auffälligem Kontrast zu einer der Prinzipien von Python:
„Fehler sollten niemals unbemerkt bleiben.“ [2]
Auch die XML-Spezifikation schreibt vor, dass nicht wohlgeformte XML-Dokumente zurückgewiesen werden sollen:
„Validierende Prozessoren MÜSSEN … Verstöße gegen … die Nichteinhaltung der in dieser Spezifikation festgelegten Gültigkeitsbedingungen melden.“ [3]
Die Abschnitte Testverfahren, Wertebereiche und Regressionstests setzen keine Python-Kenntnisse voraus und sind damit auch allgemein für Fachkräfte aus den Bereichen Datenmanagement, Unternehmensführung und Qualitätssicherung geeignet.
Anschließend geben wir euch einen praktischen Überblick über verschiedene Bibliotheken und Methoden zur Datenbereinigung und -validierung mit Python.