Pandas Series.std()-Funktion
Series.std()Es ist eine Funktion in Pandas zur Berechnung der Standardabweichung einer Series. Die Standardabweichung ist ein Maß für die Streuung der Daten und gibt den durchschnittlichen Grad der Abweichung zwischen den Daten und ihrem Mittelwert an.
Je größer die Standardabweichung, desto stärker sind die Daten gestreut; je kleiner die Standardabweichung, desto konzentrierter sind die Daten. Sie wird häufig in Szenarien wie Qualitätskontrolle, Risikobewertung und Analyse von Prüfungsergebnissen verwendet.
Grundlegende Syntax und Parameter
std()Es ist eine Memberfunktion des Series-Objekts und wird direkt über den Punktoperator aufgerufen.
Syntaxformat
Series.std(axis=None, skipna=True, level=None, numeric_only=None, ddof=1, **kwargs)
Parameterbeschreibung
| Parameter | Type | Beschreibung | Standardwert |
|---|---|---|---|
| axis | int | Gibt die Achse an. Series hat nur eine Zeile mit Daten; dieser Parameter dient hauptsächlich der Kompatibilität mit DataFrame. | Keine |
| skipna | bool | Wenn True, werden NaN-Werte während der Berechnung übersprungen; wenn False, gibt das Ergebnis NaN zurück, wenn ein NaN auftritt. | True |
| level | int oder str | Wenn die Series einen MultiIndex hat, geben Sie die Ebene an, die berechnet werden soll. | Keine |
| numeric_only | bool | Wenn True, nur mit numerischen Daten arbeiten; andernfalls wird versucht, in numerische Daten umzuwandeln. | False |
| ddof | int | Delta-Freiheitsgrade-Anpassungsparameter. ddof=1 verwendet die Stichprobenstandardabweichung (n-1), ddof=0 verwendet die Populationsstandardabweichung (n). | 1 |
Rückgabewert
- Rückgabetyp:
float - Beschreibung: Gibt die Standardabweichung der Elemente in der Series zurück. Standardmäßig wird die Stichprobenstandardabweichung verwendet (geteilt durch n-1).
Beispiele
Lass uns anhand einer Reihe von Beispielen von einfach bis komplex gründlichSeries.std()die Verwendung beherrschen.
Beispiel 1: Grundlegende Verwendung - Das Konzept der Standardabweichung verstehen
Die Standardabweichung misst die Streuung der Daten; je größer der Wert, desto stärker sind die Daten gestreut.
Beispiel
import numpy as np
# Zwei Datensätze mit Punktzahlen
# Gruppe A: Punktzahlen sind relativ konzentriert
group_a = pd.Series([85, 86, 87, 88, 89])
# Gruppe B: Punktzahlen sind relativ verstreut
group_b = pd.Series([70, 75, 85, 95, 100])
print("Punktzahlen von Gruppe A (stärker konzentriert):")
print(group_a)
print(f"Mittelwert: {group_a.mean():.2f}")
print(f"Standardabweichung: {group_a.std():.2f}")
print()
print("Punktzahlen von Gruppe B (stärker gestreut):")
print(group_b)
print(f"Mittelwert: {group_b.mean():.2f}")
print(f"Standardabweichung: {group_b.std():.2f}")
print()
print("Analyse: Obwohl die beiden Gruppen denselben Mittelwert (85) haben, hat Gruppe B eine größere Standardabweichung, was auf größere Punktzahlunterschiede hindeutet.")
Ausgabe:
A组成绩(较集中): 0 85 1 86 2 87 3 88 4 89 dtype: int64 平均值:85.00 标准差:1.58 B组成绩(较分散): 0 70 1 75 2 85 3 95 4 100 dtype: int64 平均值:85.00 标准差:12.50 分析:虽然两组平均值相同(85),但 B 组标准差更大,说明成绩差异更大。
Code-Erklärung:
- Die Standardabweichung von Gruppe A beträgt etwa 1.58, sehr konzentriert.
- Die Standardabweichung von Gruppe B beträgt etwa 12.50, deutlich stärker gestreut.
- Dies zeigt, dass die Verteilung der Daten selbst bei gleichem Mittelwert völlig unterschiedlich sein kann.
Beispiel 2: Die Rolle des ddof-Parameters
ddofDer Parameter steuert, ob die Stichprobenstandardabweichung oder die Populationsstandardabweichung verwendet wird
import numpy as np
# Datensatz erstellen
data = pd.Series([2, 4, 4, 4, 5, 5, 7, 9])
print("Daten:")
print(data)
print()
# Standardmäßig ddof=, verwendet die Stichprobenstandardabweichung (geteilt durch n-1)
sample_std. = data.std(ddof=1)
print(f"Stichprobenstandardabweichung (ddof=1): {sample_std:.4f}")
# ddof=0, verwendet die Populationsstandardabweichung (geteilt durch)
population_ = data.std(ddof=0)
print(f"Populationsstandardabweichung (ddof=0): {population_std:.4f}")
print()
print(Erklärung:")
print⟧"Stichprobenstandardabweichung = sqrt(sum((x-mean)^2) / (n-1))"("Sample standard deviation = sqrt(sum((x-mean)^2) / (n-1))")
print("Populationsstandardabweichung = sqrt(sum((x-mean)^2) / n)")
print("Wenn die Datenmenge ist, ist der Unterschied zwischen den beiden sehr klein.")
Ausgabe:
数据: 0 2 1 4 2 4 3 4 4 5 5 5 6 7 7 9 dtype: int64 样本标准差(ddof=1):2.2678 总体标准差(ddof=0):2.1213
Code-Erklärung:
- Stichprobenstandardabweichung (ddof=1) verwendet n-1 als Divisor und ist für Stichproben geeignet, die aus einer Grundgesamtheit gezogen werden.
- Populationsstandardabweichung (ddof=0) verwendet n als Divisor und ist für den gesamten Datensatz geeignet.
- Pandas verwendet standardmäßig ddof=1, d. h. die Stichprobenstandardabweichung.
Beispiel 3: Umgang mit Daten, die fehlende Werte enthalten
Beispiel
import numpy as np
# Eine Series mit fehlenden Werten erstellen
data_with_nan = pd.Series([10, 20, np.nan, 30, 40, np.nan, 50])
print("Daten mit fehlenden Werten:")
print(data_with_nan)
print()
# Standardmäßig skipna=True, überspringt NaN bei der Berechnung der Standardabweichung
std_skipna = data_with_nan.std()
print(f"Standardabweichung bei skipna=True (Standardfall): {std_skipna:.4f}")
# Setze skipna=False
std_no_skipna = data_with_nan.std(skipna=False)
print(f"Standardabweichung bei skipna=False: {std_no_skipna}")
Ausgabe:
包含缺失值的数据: 0 10.0 1 20.0 2 NaN 3 30.0 4 40.0 5 NaN 6 50.0 dtype: float64 skipna=True(默认)时的标准差:15.8114 skipna=False 时的标准差:nan
Beispiel 4: Praktische Anwendung – Volatilitätsanalyse von Aktienrenditen
Die Standardabweichung wird im Finanzwesen häufig zur Risikomessung verwendet.
Beispiel
# Simuliere 10 Tage täglicher Renditen (%) für zwei Aktien
stock_a = pd.Series([1.2, 0.8, -0.5, 1.5, 0.3, -0.2, 1.0, 0.7, -0.3, 0.5])
stock_b = pd.Series([3.5, -2.0, 4.2, -1.5, 2.8, -3.0, 1.2, -0.8, 3.0, -2.4])
print("Tagesrenditen von Aktie A (%):")
print(stock_a)
print(f"Durchschnittsrendite: {stock_a.mean():.2f}%")
print(f"Volatilität (Standardabweichung): {stock_a.std():.2f}%")
print()
print("Tagesrenditen von Aktie B (%):")
print(stock_b)
print(f"Durchschnittsrendite: {stock_b.mean():.2f}%")
print(f"Volatilität (Standardabweichung): {stock_b.std():.2f}%")
print()
print("Analyse:")
print("Aktie B hat eine größere Standardabweichung, was auf volatilere Renditen und höheres Risiko hindeutet.")
print("Obwohl ihre durchschnittlichen Renditen ähnlich sein mögen, ist das Risikoniveau unterschiedlich.")
Ausgabe:
股票 A 日收益率(%): 0 1.2 1 0.8 2 -0.5 3 1.5 4 0.3 5 -0.2 6 1.0 7 0.7 8 -0.3 9 0.5 dtype: int64 平均收益率:0.60% 波动率(标准差):0.68% 股票 B 日收益率(%): 0 3.5 1 -2.0 2 4.2 3 -1.5 4 2.8 5 -3.0 6 1.2 7 -0.8 8 3.0 9 -2.4 dtype: int64 平均收益率:0.60% 波动率(标准差):2.59% 分析:股票 B 的波动率是股票 A 的约 4 倍,说明风险高得多。
Hinweise
- Standardmäßig wird die Stichprobenstandardabweichung (ddof=1) verwendet, die für die statistische Analyse geeignet ist.
- Wenn Sie die Standardabweichung der Grundgesamtheit berechnen müssen, setzen Sie ddof=0.
- Die Einheit der Standardabweichung ist dieselbe wie die der ursprünglichen Daten, was intuitiv leicht zu verstehen ist.
- Je größer die Standardabweichung, desto stärker sind die Daten gestreut; je kleiner die Standardabweichung, desto konzentrierter sind die Daten.
Zusammenfassung
Series.std()Es ist eine wichtige Funktion zur Messung der Datenstreuung. Zu ihren Hauptmerkmalen gehören:
- Standardmäßig verwendet sie die Stichprobenstandardabweichung (ddof=1), was für die statistische Analyse besser geeignet ist.
- Sie kann in Verbindung mit
mean()verwendet werden, um die Verteilungseigenschaften der Daten umfassend zu beschreiben. - In der Finanzwelt wird die Standardabweichung häufig zur Messung des Risikos (Volatilität) verwendet.
- Das Quadrat der Standardabweichung ist die Varianz (
var())。
In der praktischen Datenanalyse wird die Standardabweichung häufig zusammen mit Kennzahlen wie Mittelwert und Median verwendet, um ein vollständiges Verständnis der Datenverteilung zu erhalten.
Andere Erweiterungen
Pandas Häufige Funktionen