Pandas Series.quantile()-Funktion

Pandas 常用函数Gängige Pandas-Funktionen


Series.quantile()Es ist eine Funktion in Pandas, die zur Berechnung von Quantilen einer Series verwendet wird. Quantile sind Werte, die geordnete Daten in mehrere gleiche Teile unterteilen; gebräuchliche sind Quartile (25%, 50%, 75%), der Median (50%) und so weiter.

Quantile sind wichtige Indikatoren zur Beschreibung der Datenverteilung. Sie helfen, die Verteilungsform zu verstehen und Ausreißer zu identifizieren. Sie werden häufig in der statistischen Analyse, beim Score-Ranking, in der Einkommensanalyse und in anderen Szenarien verwendet.


Grundlegende Syntax und Parameter

quantile()Es ist eine Member-Funktion des Series-Objekts, die direkt mit dem Punktoperator aufgerufen wird.

Syntaxformat

Series.quantile(q=0.5, interpolation='linear', numeric_only=True, closed='both')

Parameterbeschreibung

Parameter Type Beschreibung Standardwert
q float oder array-ähnlich Der Quantilwert bzw. die Quantilwerte, im Bereich von 0 bis 1. Kann ein einzelner Wert oder eine Liste mit mehreren Werten sein. 0.5
interpolation str Die Interpolationsmethode, die verwendet wird, wenn das Quantil zwischen zwei Werten liegt. Optionale Werte: 'linear', 'lower', 'higher', 'nearest', 'midpoint'. 'linear'
numeric_only bool Wenn True, werden nur numerische Daten berechnet. True
geschlossen str Wird in DataFrame verwendet, um den Abschluss des Intervalls zu bestimmen. Wird in Series nicht häufig verwendet. 'both'

Rückgabewert

    • Rückgabetyp:floatoderSeries
    • BeschreibungGibt den Wert am angegebenen Quantil zurück. Wenn q ein einzelner Wert ist, wird ein float zurückgegeben; wenn q eine Liste ist, wird eine Series zurückgegeben.

    Beispiele

    Lass uns durch eine Reihe von Beispielen von einfach bis komplex gründlich meistern,Series.quantile()die Verwendung von Series.quantile().

    Beispiel 1: Grundlegende Verwendung - Berechnung des Medians

    Der Median ist das 50%-Quantil und das am häufigsten verwendete Quantil.

    Beispiel

    import pandas as pd

    # Erstelle eine Series mit Schülerpunkten
    scores = pd.Series([65, 70, 72, 75, 78, 80, 82, 85, 88, 90, 92, 95])

    print("Schülerpunkte:")
    print(scores)
    print()

    # Berechne den Median (50%-Quantil)
    median_score = scores.quantile(0.5)

    print(f"Median: {median_score}")
    print(f"Verwendung der Funktion median(): {scores.median()}")
    print()
    print("Analyse: 50% der Punktzahlen der Studierenden sind kleiner oder gleich 80.")

    Ausgabe:

    学生成绩:
    0    65
    1    70
    2    72
    3    75
    4    75
    5    80
    6    80
    7    85
    8    88
    9    90
    10    92
    11    95
    dtype: int64
    
    中位数:80.0
    
    中位数(使用 median() 函数):80.0
    

    Code-Erklärung:

    • quantile(0.5)Äquivalent zumedian()。
    • Der Median teilt die Daten in zwei Hälften; 50% der Daten sind kleiner oder gleich dem Median.

    Beispiel 2: Berechnung von Quartilen

    Quartile teilen die Daten in vier gleiche Teile: 25%, 50%, 75%.

    Beispiel

    import pandas as pd

    # Erstelle eine Series mit Mitarbeitereinkommen
    income = pd.Series([3000, 3500, 3800, 4000, 4200, 4500, 5000, 5500, 6000, 8000, 15000])

    print("Monatliche Einkommensdaten der Mitarbeiter (yuan):")
    print(income)
    print()

    # Berechne die drei Quartile
    q1 = income.quantile(0.25)   # Erstes Quartil (25%)
    q2 = income.quantile(0.50)   # Zweites Quartil / Median (50%)
    q3 = income.quantile(0.75)   # Drittes Quartil (75%)

    print(f"Erstes Quartil Q1 (25%): {q1} yuan")
    print(f"Zweites Quartil Q2 (50%): {q2} Yuan")
    print(f"Drittes Quartil Q3 (75%): {q3} Yuan")
    print()

    # Interquartilsabstand (IQR) berechnen
    iqr = q3 - q1
    print(f"Interquartilsabstand IQR: {iqr} Yuan")
    print()

    print("Analyse:")
    print("- 25% der Mitarbeiter verdienen weniger als oder gleich 4000 Yuan")
    print("- 50% der Mitarbeiter verdienen weniger als oder gleich 5000 Yuan")
    print("- 75% der Mitarbeiter verdienen weniger als oder gleich 6000 Yuan")
    print("- Je größer der IQR, desto stärker streuen die Daten")

    Ausgabe:

    员工月收入数据(元):
    1    3000
    2    低于 3800
    3    4000
    4    4200
    5    4500
    6    5000
    7    5500
    8    6000
    9    8000
    10   15000
    dtype: int64
    
    Q1(25% 分位):4000.0 元
    Q2(50% 分位):5000.0 元
    Q3(75% 分位):6000.0 元
    
    四分位距 IQR = 6000 - 4000 = 2000 元
    

    Beispiel 3: Mehrere Quantile auf einmal berechnen

    Sie können mehrere Quantile auf einmal berechnen.

    Beispiel

    import pandas as pd

    # Daten erstellen
    data = pd.Series([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])

    print("Daten:")
    print(data)
    print()

    # Mehrere Quantile berechnen
    Perzentile = data.quantile([0, 0.1, 0.25, 0.5, 0.75, 0.9, 1.0])

    print("Quantile:")
    print(percentiles)
    print()

    # Das Quantil kann auch als Prozent-String angegeben werden (nur ein einzelner Wert)
    print(f"Mit String '50%': {data.quantile('50%')}")
    print(f"Mit String '0.5': {data.quantile(0.5)}")

    Ausgabe:

    数据:
    0     10
    1     20
    2     30
    3     40
    4     50
    量值:60
    5     70
    6     80
    7     90
    8    100
    dtype: int 参数
    
    多个分位数:
    0.00    10.0
    0.10    19.0
    0.25    32.5
    0.50    50.0
    0.75    67.5
    0.90    81.0
    1.00   100.0
    dtype: float64
    

    Beispiel 4: Die Rolle des Interpolationsparameters

    Wenn das Quantil zwischen zwei Werten liegt, liefern verschiedene Interpolationsmethoden unterschiedliche Ergebnisse.

    Beispiel

    import pandas as pd

    # Erstelle eine Series mit 6 Elementen
    data = pd.Series([10, 20, 30, 40, 50, 60])

    print("Daten:", data.values)
    print()

    # Berechne das 30%-Quantil (zwischen 20 und 30)
    # Position = (n-1) * q = 5 * 0.3 = 1.5
    print("30%-Quantil mit verschiedenen Interpolationsmethoden:")

    linear = data.quantile(0.3, interpolation='linear')
    print(f"linear (lineare Interpolation, Standard): {linear}")

    lower = data.quantile(0.3, interpolation='lower')
    print(f"lower (den kleineren Wert nehmen): {lower}")

    higher = data.quantile(0.3, interpolation='higher')
    print(f"higher (den größeren Wert nehmen): {higher}")

    nearest = data.quantile(0.3, interpolation='nearest')
    print(f"nearest (den nächstgelegenen Wert nehmen): {nearest}")

    midpoint = data.quantile(0.3, interpolation='midpoint')
    print(f"midpoint (den Mittelpunkt nehmen): {midpoint}")

    Ausgabe:

    数据:[10, 20, 30, 40, 50, 60]
    位置计算:(n-1) * q = 5 * 0.3 = 1.5,表示在 20 和 30 之间
    
    不同插值方法的结果:
    - linear(线性插值,默认):23.0
    - lower(向下取整):20.0
    - higher(向上取整):30.0
    - nearest(最近邻):20.0
    - midpoint(中间值):25.0
    

    Code-Erklärung:

    • interpolation='linear'Führt eine lineare Interpolation zwischen den beiden Werten durch, 20 + (30-20)*0.5 = 23.
    • interpolation='lower'Nimmt den Wert mit dem kleineren Index, d. h. 20.
    • interpolation='higher'Nimmt den Wert mit dem größeren Index, d. h. 30.
    • interpolation='nearest'Nimmt den Wert, der der Quantilposition am nächsten liegt.
    • interpolation='midpoint'Nimmt den Mittelpunkt der beiden Werte, d. h. (20+30)/2 = 25.

    Beispiel 5: Identifizieren von Ausreißern mithilfe von Quantilen

    Der Interquartilsabstand (IQR) wird häufig verwendet, um Ausreißer in Daten zu identifizieren.

    Beispiel

    import pandas as pd

    # Daten mit einigen Ausreißern erstellen
    data = pd.Series([12, 15, 18, 20, 22, 25, 28, 30, 32, 150])

    print("Daten (mit Ausreißern):")
    print(data)
    print()

    # Quartile berechnen
    q1 = data.quantile(0.25)
    q3 = data.quantile(0.75)
    iqr = q3 - q1

    # Ausreißergrenzen berechnen
    lower_bound = q1 - 1.5 * iqr
    upper_bound = q3 + 1.5 * iqr

    print(f"Q1(25%):{q1}")
    print(f"Q3(75%):{q3}")
    print(f"IQR:{iqr}")
    print()
    print(f"Untere Grenze der Normalwerte: {lower_bound}")
    print(f"Obere Grenze der Normalwerte: {upper_bound}")
    print()

    # Ausreißer identifizieren
    outliers = data[(data upper_bound)]
    print(f"Ausreißer: {outliers.values}")
    print()

    print("Analyse: 150 ist ein offensichtlicher Ausreißer und überschreitet die obere Grenze.")

    Ausgabe:

    数据(含异常值):
    3     150
    4     22
    5     25
    6     28
    7     30
    8     32
    9    150
    dtype: int64
    
    Q1(25%):18.75
    Q3(75%):30.25
    IQR = 11.5
    
    正常值下界:1.5
    正常值上界:47.5
    异常值:150
    
    分析:150 明显超出了正常范围,是一个异常值。
    

    Hinweise

    • Der Quantilwert reicht von 0 bis 1.
    • Standardmäßig wird die lineare Interpolationsmethode zur Berechnung von Quantilen verwendet.
    • Wenn q eine Liste ist, ist der Rückgabewert eine Series statt eines einzelnen Werts.
    • Quantile können verwendet werden, um Ausreißer in Daten zu identifizieren; eine gängige Methode ist die IQR-Regel (das 1.5-Fache des Interquartilsabstands).
    • Bei großen Datensätzen ist die Quantilberechnung sehr effizient.

    Zusammenfassung

    Series.quantile()Es ist eine wichtige Funktion zur Analyse der Datenverteilung. Zu ihren Hauptmerkmalen gehören:

    • Unterstützt die Berechnung jedes Quantils (zwischen 0 und 1).
    • Kann mehrere Quantile gleichzeitig berechnen.
    • Bietet mehrere Interpolationsmethoden, um unterschiedliche Anforderungen zu erfüllen.
    • Sehr nützlich zum Identifizieren von Ausreißern.

    In der praktischen Datenanalyse werden Quantile häufig verwendet, um die Form der Datenverteilung zu verstehen, verschiedene Datensätze zu vergleichen, Ausreißer zu identifizieren usw. In Kombination mit Boxplots können sie die Datenverteilung anschaulicher darstellen.

    Pandas 常用函数Gängige Pandas-Funktionen

    Andere Erweiterungen