
SAS2PYTHON - Lagemaße (Mittelwert, Modalwert, Median, Quantile)
Posted on 23 August 2022 at 15:00 by Stefan Weingaertner
In der Episode 20 unseres heutigen Blog-Beitrags zeigen wir, wie man in SAS/BASE und in Pandas Lagemaß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 folgenden Output:
- Mittelwerte für alle Spalten.
- Median für alle Spalten.
- Modelwerte für alle Spalten.
- Quantile 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 Lagemaße Mittelwert, Median und Modelwert würde man für ein SAS Dataset "df" mit der Prozedur PROC MEANS wie folgt umsetzen.
proc means data = df mean median mode;
run;
SAS-Output: Das Ergebnis sieht in SAS wie folgt aus.
Variable Mean Median Mode
column_1 16.00 20.0 20
column_2 6.00 4.0 3
column_3 -4.20 -3.0 -3
column_4 0.18 2.0 2
SAS-Code: Das Berechnen der Quantile würde man mit Hilfe der SAS Prozedur "PROC STDIZE" umsetzen.
proc stdize data = df pctlmtd = ORD_STAT outstat = df_quantiles
pctlpts = 0, 25, 50, 75, 100;
var column_1 column_2 column_3 column_4;
run;
data df_quantiles;
set df_quantiles;
where _type_ =: 'P';
run;
SAS-Output: Das Ergebnis sieht in SAS wie folgt aus.
_TYPE_ column_1 column_2 column_3 column_4
P0 5.0 3.0 -9.0 -8.7
P25 10.0 3.0 -6.0 0.0
P50 20.0 4.0 -3.0 2.0
P75 20.0 8.0 -3.0 2.0
P100 25.0 12.0 0.0 5.6
Python-Code: In Python kann man das Berechnen von Mittelwert, Modalwert, Median & Quantilen für die vier Spalten des DataFrame "df" mit der folgenden Syntax umsetzen.
import pandas as pd
# Mittelwerte
df.mean()
column_1 16.00
column_2 6.00
column_3 -4.20
column_4 0.18
dtype: float64
# Median
df.median()
column_1 20.0
column_2 4.0
column_3 -3.0
column_4 2.0
dtype: float64
# Modalwerte
df.mode()
column_1 column_2 column_3 column_4
0 20 3 -3 2.0
# Quantile (0%, 25%, 50%, 75%, 100%)
df.quantile(q=[0.0,0.25,0.5,0.75,1])
column_1 column_2 column_3 column_4
0.00 5.0 3.0 -9.0 -8.7
0.25 10.0 3.0 -6.0 0.0
0.50 20.0 4.0 -3.0 2.0
0.75 20.0 8.0 -3.0 2.0
1.00 25.0 12.0 0.0 5.6
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.