
SAS2PYTHON - Streumaße (Spannweite, Standardabweichung, Varianz)
Posted on 30 August 2022 at 13:18 by Stefan Weingaertner
In der Episode 21 unseres heutigen Blog-Beitrags zeigen wir, wie man in SAS/BASE und in Pandas Streumaße berechnen 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 5 Datensätze und besteht aus den Spalten "column_1", "column_2", "column_3" und "column_4".
column_1 column_2 column_3 column_4
0 5 3 -3 2.0
1 10 3 -9 2.0
2 20 4 -6 0.0
3 20 8 0 5.6
4 25 12 -3 -8.7
Output: Wir erzeugen folgende Ergebnisse:
- Spannweite für alle Spalten.
- Standardabweichung für alle Spalten.
- Varianz für alle Spalten.
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: Das Berechnen der Streumaße Spannweite, Standardabweichung und Varianz würde man für ein SAS Dataset "df" mit der Prozedur PROC MEANS wie folgt umsetzen.
proc means data = df range std var;
run;
SAS-Output: Das Ergebnis sieht in SAS wie folgt aus.
Variable Range Std Dev Variance
column_1 20 8.2158383626 67.5
column_2 9 3.937003937 15.5
column_3 9 3.4205262753 11.7
column_4 14.3 5.3592909979 28.722
Python-Code: In Python kann man das Berechnen von Spannweite, Standardabweichung und Varianz für die vier Spalten des DataFrame "df" mit der folgenden Syntax umsetzen.
import pandas as pd
# Spannweite
df.max()-df.min()
column_1 20.0
column_2 9.0
column_3 9.0
column_4 14.3
dtype: float64
# Standardabweichung
df.std()
column_1 8.215838
column_2 3.937004
column_3 3.420526
column_4 5.359291
dtype: float64
df.var()
column_1 67.500
column_2 15.500
column_3 11.700
column_4 28.722
dtype: float64
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.