SAS2PYTHON - Dubletten markieren
Posted on 31 January 2023 at 17:30 by Stefan Weingaertner
In der Episode 43 unseres heutigen Blog-Beitrags zeigen wir, wie man in SAS/BASE und in Pandas die erste oder letzte Zeile einer Duplette (mehrfache Ausprägungen innerhalb einer oder mehrerer Spalten) identifizieren und markieren 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 Datensätze markiert sind, die eine Duplette enthalten. Dabei erhält die sogenannte Kopfduplette den Wert 1 bzw. "False", wohingegen die anderen Ausprägungen den Wert 0 bzw. "True" erhalten:
- Jeweils ein Beispiel, wo die erste Ausprägung einer Duplette als Kopfduplette markiert wird (1 bzw. "False"), alle anderen Datensätze erhalten den Wert 0 bzw. "True".
- Jeweils ein Beispiel, wo die letzte Ausprägung einer Duplette als Kopfduplette markiert wird (1 bzw. "False"), alle anderen Datensätze erhalten den Wert 0 bzw. "True".
Da manche Operationen in SAS und Python unterschiedlich ausgeführt werden, generieren die beiden Programmiersprachen auch leicht unterschiedlichen Ausgabe-Formate. Wir haben daher die Outputs mit dem dazugehörigen Code für SAS und Python separat aufgeführt.
SAS-Code: Die Identifizierung und Markierung einer Kopfduplette (erster Datensatz innerhalb von mehrfachen Ausprägungen) würde man in SAS wie folgt implementieren (das SAS Data Set sollte vorher nach der entsprechende(n) Spalte(n) sortiert sein).
SAS-Output: Das Ergebnis sieht in SAS wie folgt aus, dem SAS Data Set wird eine neue Spalte hinzugefügt. Dabei erhält der erste Datensatz innerhalb der mehrfachen Ausprägungen den Wert "First = 1".
SAS-Code: Die Identifizierung einer Kopfduplette (letzter Datensatz innerhalb der mehrfachen Ausprägungen) würde man in SAS wie folgt implementieren.
SAS-Output: Das Ergebnis sieht in SAS wie folgt aus, dem SAS Data Set wird eine neue Spalte hinzugefügt. Dabei erhält der letzte Datensatz innerhalb der mehrfachen Ausprägungen den Wert "Last = 1".
Python-Code: In Python würde man die Identifizierung und Markierung der Kopfduplette (erster Datensatz innerhalb von mehrfachen Ausprägungen) für ein Pandas Dataframe "df" mit der folgenden Syntax umsetzen (das Pandas Dataframe sollte vorher nach der entsprechende(n) Spalte(n) sortiert sein).
Python-Output: Das Ergebnis sieht in Pandas wie folgt aus, dem Pandas Dataframe wird eine neue Spalte hinzugefügt. Dabei erhält der erste Datensatz innerhalb von mehrfachen Ausprägungen den Wert "First = False".
Python-Code: In Python würde man die Identifizierung und Markierung der Kopfduplette (letzter Datensatz innerhalb von mehrfachen Ausprägungen) für ein Pandas Dataframe "df" mit der folgenden Syntax umsetzen.
Python-Output: Das Ergebnis sieht in Pandas wie folgt aus, dem Pandas DataFrame wird eine neue Spalte hinzugefügt. Dabei erhält der letzte Datensatz innerhalb von mehrfachen Ausprägungen den Wert "Last = False".
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.