Fonction Pandas Series.quantile()

Pandas 常用函数Fonctions courantes de Pandas


Series.quantile()Il s'agit d'une fonction de Pandas utilisée pour calculer les quantiles d'une Series. Les quantiles sont des valeurs qui divisent des données ordonnées en plusieurs parts égales ; les plus courants incluent les quartiles (25 %, 50 %, 75 %), la médiane (50 %), etc.

Les quantiles sont des indicateurs importants pour décrire la distribution des données. Ils aident à comprendre la forme de la distribution et à identifier les valeurs aberrantes. Ils sont largement utilisés dans l'analyse statistique, le classement des scores, l'analyse des revenus et d'autres scénarios.


Syntaxe de base et paramètres

quantile()C'est une fonction membre de l'objet Series, appelée directement à l'aide de l'opérateur point.

Format de syntaxe

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

Description du paramètre

Paramètre Type Description Valeur par défaut
q float ou array-like La ou les valeurs de quantile, allant de 0 à 1. Peut être une valeur unique ou une liste de plusieurs valeurs. 0.5
interpolation str La méthode d'interpolation utilisée lorsque le quantile se situe entre deux valeurs. Valeurs optionnelles : 'linear', 'lower', 'higher', 'nearest', 'midpoint'. 'linear'
numeric_only bool Si True, seules les données numériques sont calculées. True
closed str Utilisé dans DataFrame pour déterminer la fermeture de l'intervalle. Pas couramment utilisé dans Series. 'both'

Valeur de retour

    • Type de retour:floatouSeries
    • DescriptionRenvoie la valeur au quantile spécifié. Si q est une valeur unique, renvoie un float ; si q est une liste, renvoie une Series.

    Exemples

    Maîtrisons à fond, à travers une série d'exemples du simple au complexe,Series.quantile()l'utilisation de Series.quantile().

    Exemple 1 : Utilisation de base - Calcul de la médiane

    La médiane est le quantile à 50% et est le quantile le plus couramment utilisé.

    Exemple

    import pandas as pd

    # Créer une Series contenant les notes des étudiants
    scores = pd.Series([65, 70, 72, 75, 78, 80, 82, 85, 88, 90, 92, 95])

    print("Notes des étudiants :")
    print(scores)
    print()

    # Calculer la médiane (quantile à 50%)
    median_score = scores.quantile(0.5)

    print(f"Médiane : {median_score}")
    print(f"Utilisation de la fonction median() : {scores.median()}")
    print()
    print("Analyse : 50% des scores des étudiants sont inférieurs ou égaux à 80.")

    Sortie :

    学生成绩:
    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
    

    Explication du code :

    • quantile(0.5)Équivalent àmedian()。
    • La médiane divise les données en deux moitiés ; 50% des données sont inférieures ou égales à la médiane.

    Exemple 2 : Calcul des quartiles

    Les quartiles divisent les données en quatre parties égales : 25%, 50%, 75%.

    Exemple

    import pandas as pd

    # Créer une Series contenant le revenu des employés
    income = pd.Series([3000, 3500, 3800, 4000, 4200, 4500, 5000, 5500, 6000, 8000, 15000])

    print("Données sur le revenu mensuel des employés (yuan) :")
    print(income)
    print()

    # Calculer les trois quartiles
    q1 = income.quantile(0.25)   # Premier quartile (25%)
    q2 = income.quantile(0.50)   # Deuxième quartile / médiane (50%)
    q3 = income.quantile(0.75)   # Troisième quartile (75%)

    print(f"Premier quartile Q1 (25%) : {q1} yuan")
    print(f"Deuxième quartile Q2 (50%) : {q2} yuan")
    print(f"Troisième quartile Q3 (75%) : {q3} yuan")
    print()

    # Calculer l'écart interquartile (IQR)
    iqr = q3 - q1
    print(f"Écart interquartile IQR : {iqr} yuan")
    print()

    print("Analyse :")
    print("- 25% des employés gagnent 4000 yuan ou moins")
    print("- 50% des employés gagnent 5000 yuan ou moins")
    print("- 75% des employés gagnent 6000 yuan ou moins")
    print("- Plus l'IQR est grand, plus les données sont dispersées")

    Sortie :

    员工月收入数据(元):
    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 元
    

    Exemple 3 : Calcul de plusieurs quantiles à la fois

    Vous pouvez calculer plusieurs quantiles à la fois.

    Exemple

    import pandas as pd

    # Créer des données
    data = pd.Series([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])

    print("Données :")
    print(data)
    print()

    # Calculer plusieurs quantiles
    percentiles = data.quantile([0, 0.1, 0.25, 0.5, 0.75, 0.9, 1.0])

    print("Quantiles :")
    print(percentiles)
    print()

    # Le quantile peut aussi être spécifié comme une chaîne de pourcentage (valeur unique uniquement)
    print(f"En utilisant la chaîne '50%' : {data.quantile('50%')}")
    print(f"En utilisant la chaîne '0.5' : {data.quantile(0.5)}")

    Sortie :

    数据:
    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
    

    Exemple 4 : Le rôle du paramètre d'interpolation

    Lorsque le quantile se situe entre deux valeurs, différentes méthodes d'interpolation produisent des résultats différents.

    Exemple

    import pandas as pd

    # Créer une Series avec 6 éléments
    data = pd.Series([10, 20, 30, 40, 50, 60])

    print("Données :", data.values)
    print()

    # Calculer le quantile à 30% (entre 20 et 30)
    # position = (n-1) * q = 5 * 0.3 = 1.5
    print("quantile à 30% avec différentes méthodes d'interpolation :")

    linear = data.quantile(0.3, interpolation='linear')
    print(f"linear (interpolation linéaire, par défaut) : {linear}")

    lower = data.quantile(0.3, interpolation='lower')
    print(f"lower (prendre la plus petite valeur) : {lower}")

    higher = data.quantile(0.3, interpolation='higher')
    print(f"higher (prendre la plus grande valeur) : {higher}")

    nearest = data.quantile(0.3, interpolation='nearest')
    print(f"nearest (prendre la valeur la plus proche) : {nearest}")

    midpoint = data.quantile(0.3, interpolation='midpoint')
    print(f"midpoint (prendre le point milieu) : {midpoint}")

    Sortie :

    数据:[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
    

    Explication du code :

    • interpolation='linear'Effectue une interpolation linéaire entre les deux valeurs, 20 + (30-20)*0.5 = 23.
    • interpolation='lower'Prend la valeur ayant le plus petit indice, c'est-à-dire 20.
    • interpolation='higher'Prend la valeur avec l'indice le plus grand, c'est-à-dire 30.
    • interpolation='nearest'Prend la valeur la plus proche de la position du quantile.
    • interpolation='midpoint'Prend le point milieu des deux valeurs, c'est-à-dire (20+30)/2 = 25.

    Exemple 5 : Utilisation des quantiles pour identifier les valeurs aberrantes

    L'écart interquartile (IQR) est souvent utilisé pour identifier les valeurs aberrantes dans les données.

    Exemple

    import pandas as pd

    # Créer des données contenant quelques valeurs aberrantes
    data = pd.Series([12, 15, 18, 20, 22, 25, 28, 30, 32, 150])

    print("Données (avec valeurs aberrantes) :")
    print(data)
    print()

    # Calculer les quartiles
    q1 = data.quantile(0.25)
    q3 = data.quantile(0.75)
    iqr = q3 - q1

    # Calculer les limites des valeurs aberrantes
    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"Borne inférieure des valeurs normales : {lower_bound}")
    print(f"Borne supérieure des valeurs normales : {upper_bound}")
    print()

    # Identifier les valeurs aberrantes
    outliers = data[(data upper_bound)]
    print(f"Valeurs aberrantes : {outliers.values}")
    print()

    print("Analyse : 150 est une valeur aberrante évidente, dépassant la borne supérieure.")

    Sortie :

    数据(含异常值):
    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 明显超出了正常范围,是一个异常值。
    

    Notes

    • La valeur du quantile est comprise entre 0 et 1.
    • Par défaut, la méthode d'interpolation linéaire est utilisée pour calculer les quantiles.
    • Lorsque q est une liste, la valeur de retour est une Series plutôt qu'une seule valeur.
    • Les quantiles peuvent être utilisés pour identifier des valeurs aberrantes dans les données ; une méthode courante est la règle IQR (1.5 fois l'écart interquartile).
    • Pour les grands ensembles de données, le calcul des quantiles est très efficace.

    Résumé

    Series.quantile()C'est une fonction importante pour analyser la distribution des données. Ses principales caractéristiques incluent :

    • Prend en charge le calcul de n'importe quel quantile (entre 0 et 1).
    • Peut calculer plusieurs quantiles à la fois.
    • Fournit plusieurs méthodes d'interpolation pour répondre à différents besoins.
    • Très utile pour identifier les valeurs aberrantes.

    Dans l'analyse pratique des données, les quantiles sont souvent utilisés pour comprendre la forme de la distribution des données, comparer différents ensembles de données, identifier les valeurs aberrantes, etc. Lorsqu'ils sont combinés avec des boîtes à moustaches, ils peuvent afficher la distribution des données de manière plus intuitive.

    Pandas 常用函数Fonctions courantes de Pandas

    Autres extensions