Nützliche Python-Skripte zur Automatisierung der DatenbereinigungNützliche Python-Skripte zur Automatisierung der Datenbereinigung
Bild vom Herausgeber

# Einführung

Als Datenexperte wissen Sie, dass Modelle für maschinelles Lernen, Analyse-Dashboards und Geschäftsberichte alle von Daten abhängen, die genau, konsistent und richtig formatiert sind. Aber hier ist die unbequeme Wahrheit: Die Datenbereinigung nimmt einen großen Teil der Projektzeit in Anspruch. Datenwissenschaftler und -analysten verbringen einen Großteil ihrer Zeit damit, Daten zu bereinigen und aufzubereiten, anstatt sie tatsächlich zu analysieren.

Die Rohdaten, die Sie erhalten, sind chaotisch. Es gibt verstreut fehlende Werte, doppelte Datensätze, inkonsistente Formate, Ausreißer, die Ihre Modelle verzerren, und Textfelder voller Tippfehler und Inkonsistenzen. Das manuelle Bereinigen dieser Daten ist mühsam, fehleranfällig und lässt sich nicht skalieren.

In diesem Artikel werden fünf Python-Skripte behandelt, die speziell zur Automatisierung der häufigsten und zeitaufwändigsten Datenbereinigungsaufgaben entwickelt wurden, denen Sie in realen Projekten häufig begegnen.

🔗 Hyperlink zum Code auf GitHub

# 1. Handler für fehlende Werte

Der Schmerzpunkt: In Ihrem Datensatz fehlen überall Werte – einige Spalten sind zu 90 % vollständig, andere enthalten spärliche Daten. Sie müssen entscheiden, was mit den einzelnen Zeilen geschehen soll: Löschen Sie die Zeilen, füllen Sie sie mit Mittelwerten, verwenden Sie die Vorwärtsfüllung für Zeitreihen oder wenden Sie eine komplexere Imputation an. Dies manuell für jede Spalte durchzuführen ist mühsam und inkonsistent.

Was das Skript macht: Analysiert automatisch Muster fehlender Werte in Ihrem gesamten Datensatz, empfiehlt geeignete Handhabungsstrategien basierend auf Datentyp und Fehlmustern und wendet die ausgewählten Imputationsmethoden an. Erstellt einen detaillierten Bericht, der zeigt, was fehlte und wie damit umgegangen wurde.

Wie es funktioniert: Das Skript durchsucht alle Spalten, um fehlende Prozentsätze und Muster zu berechnen, bestimmt Datentypen (numerisch, kategorisch, Datum/Uhrzeit) und wendet entsprechende Strategien an:

  • Mittelwert/Median für numerische Daten,
  • Modus für kategoriale,
  • Interpolation für Zeitreihen.

Es kann die Muster „Lacking Utterly at Random“ (MCAR), „Lacking at Random“ (MAR) und „Lacking Not at Random“ (MNAR) unterschiedlich erkennen und verarbeiten und protokolliert alle Änderungen zur Reproduzierbarkeit.

Holen Sie sich das Skript für den Handler für fehlende Werte

# 2. Detektor und Resolver für doppelte Datensätze

Der Schmerzpunkt: Ihre Daten weisen Duplikate auf, es handelt sich jedoch nicht immer um exakte Übereinstimmungen. Manchmal handelt es sich um denselben Kunden mit leicht unterschiedlicher Schreibweise des Namens oder um dieselbe Transaktion, die zweimal mit geringfügigen Abweichungen erfasst wurde. Um diese unscharfen Duplikate zu finden und zu entscheiden, welcher Datensatz aufbewahrt werden soll, ist eine manuelle Überprüfung Tausender Zeilen erforderlich.

Was das Skript macht: Identifiziert sowohl exakte als auch unscharfe doppelte Datensätze mithilfe konfigurierbarer Abgleichsregeln. Gruppiert ähnliche Datensätze, bewertet ihre Ähnlichkeit und markiert sie entweder zur Überprüfung oder führt sie automatisch basierend auf von Ihnen definierten Überlebensregeln zusammen, z. B. „Neueste beibehalten“, „Am vollständigsten beibehalten“ und mehr.

Wie es funktioniert: Das Skript findet aus Geschwindigkeitsgründen zunächst mithilfe eines Hash-basierten Vergleichs exakte Duplikate. Anschließend werden Fuzzy-Matching-Algorithmen verwendet Levenshtein-Distanz Und Jaro-Winkler auf Schlüsselfeldern, um Beinahe-Duplikate zu finden. Datensätze werden in Duplikatgruppen gruppiert und Überlebensregeln bestimmen, welche Werte beim Zusammenführen beibehalten werden sollen. Ein detaillierter Bericht zeigt alle gefundenen doppelten Gruppen und ergriffenen Maßnahmen.

Holen Sie sich das Duplikatdetektorskript

# 3. Datentyp-Fixierer und Standardisierer

Der Schmerzpunkt: Ihr CSV-Import hat alles in Strings umgewandelt. Termine gibt es in fünf verschiedenen Formaten. Zahlen haben Währungssymbole und Tausendertrennzeichen. Boolesche Werte werden als „Ja/Nein“, „J/N“, „1/0“ und „Wahr/Falsch“ alle in derselben Spalte dargestellt. Um konsistente Datentypen zu erhalten, muss für jede chaotische Spalte eine benutzerdefinierte Parsing-Logik geschrieben werden.

Was das Skript macht: Erkennt automatisch den beabsichtigten Datentyp für jede Spalte, standardisiert Formate und konvertiert alles in die richtigen Typen. Verarbeitet Datumsangaben in mehreren Formaten, bereinigt numerische Zeichenfolgen, normalisiert boolesche Darstellungen und validiert die Ergebnisse. Stellt einen Konvertierungsbericht bereit, der zeigt, was geändert wurde.

Wie es funktioniert: Das Skript tastet Werte aus jeder Spalte ab, um mithilfe von Mustervergleichen und Heuristiken auf den beabsichtigten Typ zu schließen. Anschließend wird das entsprechende Parsing angewendet: dateutil für versatile Datumsanalyse, Regex für numerische Extraktion, Zuordnungswörterbücher für boolesche Normalisierung. Fehlgeschlagene Konvertierungen werden mit den problematischen Werten zur manuellen Überprüfung protokolliert.

Holen Sie sich das Datentyp-Fixer-Skript

# 4. Ausreißerdetektor

Der Schmerzpunkt: Ihre numerischen Daten weisen Ausreißer auf, die Ihre Analyse zerstören. Bei einigen handelt es sich um Dateneingabefehler, bei anderen handelt es sich um legitime Extremwerte, die Sie beibehalten möchten, und bei anderen handelt es sich um mehrdeutige Werte. Sie müssen sie identifizieren, ihre Auswirkungen verstehen und entscheiden, wie mit jedem Fall umgegangen werden soll – winsorisieren, begrenzen, entfernen oder zur Überprüfung markieren.

Was das Skript macht: Erkennt Ausreißer mithilfe mehrerer statistischer Methoden wie IQR, Z-Rating, Isolationswaldvisualisiert deren Verteilung und Wirkung und wendet konfigurierbare Behandlungsstrategien an. Unterscheidet zwischen univariaten und multivariaten Ausreißern. Erstellt Berichte mit der Anzahl der Ausreißer, ihren Werten und der Artwork und Weise, wie sie behandelt wurden.

Wie es funktioniert: Das Skript berechnet Ausreißergrenzen mithilfe der von Ihnen gewählten Methode(n), markiert Werte, die Schwellenwerte überschreiten, und wendet eine Behandlung an: Entfernung, Kappung bei Perzentilen, Winsorisierung oder Imputation mit Grenzwerten. Für multivariate Ausreißer wird die Isolation Forest- oder Mahalanobis-Distanz verwendet. Alle Ausreißer werden zu Prüfzwecken mit ihren ursprünglichen Werten protokolliert.

Holen Sie sich das Skript zur Ausreißererkennung

# 5. Textdatenreiniger und -normalisierer

Der Schmerzpunkt: Ihre Textfelder sind ein Chaos. Namen haben eine inkonsistente Groß- und Kleinschreibung, Adressen verwenden unterschiedliche Abkürzungen (St. vs. Avenue vs. ST), Produktbeschreibungen enthalten HTML-Tags und Sonderzeichen und Freitextfelder enthalten überall führende/nachgestellte Leerzeichen. Die Standardisierung von Textdaten erfordert die konsistente Anwendung Dutzender Regex-Muster und Zeichenfolgenoperationen.

Was das Skript macht: Bereinigt und normalisiert Textdaten automatisch: Standardisiert Groß- und Kleinschreibung, entfernt unerwünschte Zeichen, erweitert oder standardisiert Abkürzungen, entfernt HTML, normalisiert Leerzeichen und behandelt Unicode-Probleme. Mit konfigurierbaren Reinigungspipelines können Sie unterschiedliche Regeln auf verschiedene Spaltentypen (Namen, Adressen, Beschreibungen usw.) anwenden.

Wie es funktioniert: Das Skript stellt eine Pipeline von Texttransformationen bereit, die professional Spaltentyp konfiguriert werden können. Es übernimmt die Groß-/Kleinschreibung, die Bereinigung von Leerzeichen, die Entfernung von Sonderzeichen, die Standardisierung von Abkürzungen mithilfe von Nachschlagewörterbüchern und die Unicode-Normalisierung. Jede Transformation wird protokolliert und Vorher/Nachher-Beispiele werden zur Validierung bereitgestellt.

Holen Sie sich das Textreiniger-Skript

# Abschluss

Diese fünf Skripte befassen sich mit den zeitaufwändigsten Herausforderungen bei der Datenbereinigung, denen Sie in realen Projekten gegenüberstehen. Hier ist eine kurze Zusammenfassung:

  • Der Handler für fehlende Werte analysiert und unterstellt fehlende Daten clever
  • Der Duplikatdetektor findet exakte und unscharfe Duplikate und löst sie auf
  • Der Datentyp-Fixierer standardisiert Formate und konvertiert sie in geeignete Typen
  • Der Ausreißerdetektor identifiziert und behandelt statistische Anomalien
  • Textual content Cleaner normalisiert unordentliche Zeichenfolgendaten konsistent

Jedes Skript ist modular aufgebaut. Sie können sie additionally einzeln verwenden oder zu einer vollständigen Datenbereinigungspipeline verketten. Beginnen Sie mit dem Skript, das Ihr größtes Drawback angeht, testen Sie es anhand einer Stichprobe Ihrer Daten, passen Sie die Parameter für Ihren spezifischen Anwendungsfall an und bauen Sie nach und nach Ihren automatisierten Reinigungsworkflow auf.

Viel Spaß beim Bereinigen Ihrer Daten!

Bala Priya C ist ein Entwickler und technischer Redakteur aus Indien. Sie arbeitet gerne an der Schnittstelle von Mathematik, Programmierung, Datenwissenschaft und Inhaltserstellung. Zu ihren Interessen- und Fachgebieten gehören DevOps, Datenwissenschaft und Verarbeitung natürlicher Sprache. Sie liebt es zu lesen, zu schreiben, zu programmieren und Kaffee zu trinken! Derzeit arbeitet sie daran, zu lernen und ihr Wissen mit der Entwickler-Group zu teilen, indem sie Tutorials, Anleitungen, Meinungsbeiträge und mehr verfasst. Bala erstellt außerdem ansprechende Ressourcenübersichten und Programmier-Tutorials.



Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert