Deskriptive Statistik mit Pandas
Deskriptive Statistiken werden verwendet, um die grundlegenden Eigenschaften von Daten zusammenzufassen und zu beschreiben. Pandas bietet umfangreiche statistische Funktionen, um schnell die Gesamtverteilung der Daten zu erhalten.
Grundlegende statistische Funktionen
Beispiel
import pandas as pd
import numpy as np
# Beispieldaten erstellen
df = pd.DataFrame({
"Alter": [25, 30, 28, 35, 22, 40, 38, 45, 29, 31],
"Salary": [12000, 15000, 11000, 18000, 9000, 20000, 17000, 22000, 12500, 14000],
"Leistung": [85, 92, 78, 88, 65, 95, 82, 90, 75, 89]
})
print("=== Datenübersicht ===")
print(f"Datenform: {df.shape}")
print(f"\nGrundlegende Statistiken:")
print(df.describe())
import numpy as np
# Beispieldaten erstellen
df = pd.DataFrame({
"Alter": [25, 30, 28, 35, 22, 40, 38, 45, 29, 31],
"Salary": [12000, 15000, 11000, 18000, 9000, 20000, 17000, 22000, 12500, 14000],
"Leistung": [85, 92, 78, 88, 65, 95, 82, 90, 75, 89]
})
print("=== Datenübersicht ===")
print(f"Datenform: {df.shape}")
print(f"\nGrundlegende Statistiken:")
print(df.describe())
Gängige statistische Maße
| Funktion | Beschreibung | Beispiel |
|---|---|---|
count() |
Anzahl der Nicht-Null-Werte | df["年龄"].count() |
sum() |
Sum | df["薪资"].sum() |
mean() |
Mittelwert | df["年龄"].mean() |
median() |
Median | df["年龄"].median() |
std() |
Standardabweichung | df["绩效"].std() |
var() |
Varianz | df["绩效"].var() |
min() / max() |
Minimum/Maximum | df["年龄"].min() |
quantile() |
Quantil | df["薪资"].quantile(0.25) |
Quantile berechnen
Beispiel
import pandas as pd
import numpy as np
s = pd.Series(range(1, 101)) # 1 bis 100
print("Verschiedene Quantile:")
print(f"0% (min): {s.quantile(0)}")
print(f"25%: {s.quantile(0.25)}")
print(f"50% (Median): {s.quantile(0.50)}")
print(f"75%: {s.quantile(0.75)}")
print(f"100% (Maximum): {s.quantile(1)}")
print()
# Mehrere Quantile gleichzeitig berechnen
print("Batch-Quantile:")
print(s.quantile([0.1, 0.2, 0.5, 0.8, 0.9]))
import numpy as np
s = pd.Series(range(1, 101)) # 1 bis 100
print("Verschiedene Quantile:")
print(f"0% (min): {s.quantile(0)}")
print(f"25%: {s.quantile(0.25)}")
print(f"50% (Median): {s.quantile(0.50)}")
print(f"75%: {s.quantile(0.75)}")
print(f"100% (Maximum): {s.quantile(1)}")
print()
# Mehrere Quantile gleichzeitig berechnen
print("Batch-Quantile:")
print(s.quantile([0.1, 0.2, 0.5, 0.8, 0.9]))
describe Zusammenfassung
describe()Bietet eine umfassende statistische Zusammenfassung der numerischen Spalten im Datensatz.
Beispiel
import pandas as pd
df = pd.DataFrame({
"Alter": [25, 30, 28, 35],
"Salary": [12000, 15000, 11000, 18000],
"City": ["Beijing", "Shanghai", "Guangzhou", "Shenzhen"]
})
print("Statistiken numerischer Spalten:")
print(df.describe())
print()
print("Alle Spalten einbeziehen:")
print(df.describe(include="all"))
df = pd.DataFrame({
"Alter": [25, 30, 28, 35],
"Salary": [12000, 15000, 11000, 18000],
"City": ["Beijing", "Shanghai", "Guangzhou", "Shenzhen"]
})
print("Statistiken numerischer Spalten:")
print(df.describe())
print()
print("Alle Spalten einbeziehen:")
print(df.describe(include="all"))
Korrelationskoeffizient und Kovarianz
Beispiel
import pandas as pd
import numpy as np
df = pd.DataFrame({
"Alter": [25, 30, 28, 35, 22],
"Salary": [12000, 15000, 11000, 18000, 9000],
"Leistung": [85, 92, 78, 88, 65]
})
print("Korrelationskoeffizientenmatrix:")
print(df.corr())
print()
# Korrelation mit einer bestimmten Spalte
print("Korrelation mit Gehalt:")
print(df.corr()["Salary"])
import numpy as np
df = pd.DataFrame({
"Alter": [25, 30, 28, 35, 22],
"Salary": [12000, 15000, 11000, 18000, 9000],
"Leistung": [85, 92, 78, 88, 65]
})
print("Korrelationskoeffizientenmatrix:")
print(df.corr())
print()
# Korrelation mit einer bestimmten Spalte
print("Korrelation mit Gehalt:")
print(df.corr()["Salary"])
Der Korrelationskoeffizient reicht von -1 bis 1. Je näher an 1, desto stärker die positive Korrelation; je näher an -1, desto stärker die negative Korrelation; nahe 0 bedeutet keine Korrelation.
Fortgeschrittene Statistik
Beispiel
import pandas as pd
import numpy as np
s = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
# Schiefe (misst die Schiefe einer Verteilung)
print(f"Schiefe: {s.skew()}")
# Kurtosis (misst die Wölbung einer Verteilung)
print(f"Kurtosis: {s.kurtosis()}")
print()
# Kumulative Statistiken
s = pd.Series([1, 2, 3, 4, 5])
print("Kumulierte Summe:")
print(s.cumsum())
print()
print("Kumulatives Maximum:")
print(s.cummax())
import numpy as np
s = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
# Schiefe (misst die Schiefe einer Verteilung)
print(f"Schiefe: {s.skew()}")
# Kurtosis (misst die Wölbung einer Verteilung)
print(f"Kurtosis: {s.kurtosis()}")
print()
# Kumulative Statistiken
s = pd.Series([1, 2, 3, 4, 5])
print("Kumulierte Summe:")
print(s.cumsum())
print()
print("Kumulatives Maximum:")
print(s.cummax())