SAS2PYTHON - Dubletten löschen
Posted on 8 February 2023 at 07:00 by Stefan Weingaertner
In der Episode 44 unseres heutigen Blog-Beitrags zeigen wir, wie man in SAS/BASE und in Pandas mehrfache Werte oder auch komplette mehrfache Datensätze, sogenannte Dubletten, identifizieren und löschen kann.
Ein Pandas DataFrame ist einem SAS Data Set sehr ähnlich - es handelt sich um eine zweidimensionale tabellarische Datenstruktur mit gelabelten Spalten, die von unterschiedlichem Datentyp sein können. Wie in diesem Beitrag gezeigt wird, kann nahezu jede Operation, die mit dem SAS Data Step auf einen Datensatz angewendet werden kann, auch in Pandas ausgeführt werden.
Input: Unsere Input-Tabelle besitzt 6 Datensätze und besteht aus den Spalten "Sepal_Length", "Sepal_Width", "Petal_Length", "Petal_Width" und "Class".
Output: Wir generieren eine neue Tabelle, in der die mehrfachen Datensätze (Dubletten) gelöscht sind. Je nachdem, ob sich die Dubletten auf alle Spalten des Datensatzes oder nur auf ausgewählte Spalten beziehen, kann durch entsprechende vorangehende Sortierungen beeinflusst werden, welche Datensätze gelöscht werden sollen.
Da manche Operationen in SAS und Python unterschiedlich ausgeführt werden, generieren die beiden Programmiersprachen auch leicht unterschiedliche Ausgabe-Formate. Wir haben daher die Outputs mit dem dazugehörigen Code für SAS und Python separat aufgeführt.
SAS-Code bei Löschung von Dubletten über alle Spalten hinweg: Die Identifizierung und Löschung von Dubletten über alle Spalten hinweg würde man in SAS wie folgt implementieren (über eine entsprechende Sortierung sowie die Angabe des Parameters _all_ im BY-Statement kann entsprechend beeinflusst werden, welche Datensätze entfernt werden sollen).
SAS-Output bei Löschung von Dubletten über alle Spalten hinweg: Das Ergebnis sieht in SAS wie folgt aus, es werden nur Datensätze gelöscht, wenn die betroffenen Datensätze über alle Spalten hinweg mehrfach vorkommen.
SAS-Code bei Löschung von Dubletten über ausgewählte Spalten: Die Identifizierung und Löschung von Dubletten über ausgewählte Spalten würde man in SAS wie folgt implementieren (über eine entsprechende Sortierung sowie die Angabe der betroffenen Spalten im BY-Statement kann entsprechend beeinflusst werden, welche Datensätze entfernt werden sollen).
SAS-Output bei Löschung von Dubletten über ausgewählte Spalten: Das Ergebnis sieht in SAS wie folgt aus, es werden nur Datensätze gelöscht, wenn in der/den betroffenen Spalte(n) mehrfache Werte vorkommen.
Python-Code bei Löschung von Dubletten über alle Spalten hinweg: Die Identifizierung und Löschung von Dubletten über alle Spalten hinweg würde man in Pandas wie folgt realisieren.
Python-Output: Das Ergebnis sieht in Pandas wie folgt aus, es wird genau ein Datensatz entfernt.
Python-Code bei Löschung von Dubletten über ausgewählte Spalten: Die Identifizierung und Löschung von Dubletten über ausgewählte Spalten würde man in Pandas wie folgt implementieren (über eine entsprechende Sortierung sowie die Angabe der betroffenen Spalten im subset-Statement kann entsprechend beeinflusst werden, welche Datensätze entfernt werden sollen).
Python-Output bei Löschung von Dubletten über ausgewählte Spalten: Das Ergebnis sieht in Python wie folgt aus, es werden nur Datensätze gelöscht, wenn in der/den betroffenen Spalte(n) mehrfache Werte vorkommen.
Wenn Sie die nächste Episode nicht abwarten möchten, können Sie auch gerne unser umfangreiches Training Python für SAS Professionals buchen.
Informationen zu den nächsten Kursterminen und zu unserem gesamten Trainingsangebot finden Sie hier.