Función Pandas Series.quantile()

Pandas 常用函数Funciones comunes de Pandas


Series.quantile()Es una función de Pandas utilizada para calcular los cuantiles de una Series. Los cuantiles son valores que dividen los datos ordenados en varias partes iguales; los más comunes son los cuartiles (25%, 50%, 75%), la mediana (50%), etc.

Los cuantiles son un indicador importante para describir la distribución de los datos; ayudan a comprender la forma de la distribución y a identificar valores atípicos. Se aplican ampliamente en escenarios como análisis estadístico, ranking de calificaciones, análisis de ingresos, etc.


Sintaxis básica y parámetros

quantile()Es una función miembro del objeto Series y se invoca directamente mediante el operador punto.

Formato de sintaxis

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

Descripción de parámetros

Parámetro Tipo Descripción Valor predeterminado
q float o array-like Valor del cuantil, rango de 0 a 1. Puede ser un valor único o una lista de valores. 0.5
interpolation str Método de interpolación cuando el cuantil se encuentra entre dos valores. Valores opcionales: 'linear', 'lower', 'higher', 'nearest', 'midpoint'. 'linear'
numeric_only bool Si es True, solo se calcula sobre datos de tipo numérico. True
closed str Se usa en DataFrame, determina el modo de cierre de los intervalos. No se usa comúnmente en Series. 'both'

Valor de retorno

    • Tipo de retorno:floatoSeries
    • Descripción: Devuelve el valor del cuantil especificado. Si q es un valor único, devuelve float; si q es una lista, devuelve una Series.

    Ejemplos

    A través de una serie de ejemplos de simples a complejos, dominaremos a fondoSeries.quantile()el uso de la función.

    Ejemplo 1: Uso básico - Calcular la mediana

    La mediana es el cuantil del 50% y es el cuantil más utilizado.

    Ejemplo

    import pandas as pd

    # Crea una Series que contiene las calificaciones de los estudiantes
    scores = pd.Series([65, 70, 72, 75, 78, 80, 82, 85, 88, 90, 92, 95])

    print(Calificaciones de los estudiantes:)
    print(scores)
    print()

    # Calcula la mediana (cuantil del 50%)
    median_score = scores.quantile(0.5)

    print(fMediana: {median_score})
    print(fUsando la función median(): {scores.median()})
    print()
    print(Análisis: el 50% de las calificaciones de los estudiantes es menor o igual a 80 puntos.)

    Resultado de la ejecución:

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

    Análisis del código:

    • quantile(0.5)Equivale amedian()。
    • La mediana divide los datos en dos mitades; el 50% de los datos es menor o igual que la mediana.

    Ejemplo 2: Calcular cuartiles

    Los cuartiles dividen los datos en cuatro partes iguales: 25%, 50%, 75%.

    Ejemplo

    import pandas as pd

    # Crea una Series que contiene los ingresos de los empleados
    income = pd.Series([3000, 3500, 3800, 4000, 4200, 4500, 5000, 5500, 6000, 8000, 15000])

    print(Datos del ingreso mensual de los empleados (yuanes):)
    print(income)
    print()

    # Calcula los tres cuartiles
    q1 = income.quantile(0.25)   # Primer cuartil (25%)
    q2 = income.quantile(0.50)   # Segundo cuartil / mediana (50%)
    q3 = income.quantile(0.75)   # Tercer cuartil (75%)

    print(fPrimer cuartil Q1 (25%): {q1} yuanes)
    print(fSegundo cuartil Q2 (50%): {q2} yuanes)
    print(fTercer cuartil Q3 (75%): {q3} yuanes)
    print()

    # Calcula el rango intercuartílico (IQR)
    iqr = q3 - q1
    print(fRango intercuartílico IQR: {iqr} yuanes)
    print()

    print(Análisis:)
    print(- El 25% de los empleados tiene ingresos menores o iguales a 4000 yuanes)
    print(- El 50% de los empleados tiene ingresos menores o iguales a 5000 yuanes)
    print(- El 75% de los empleados tiene ingresos menores o iguales a 6000 yuanes)
    print(- Cuanto mayor es el IQR, más dispersos están los datos)

    Resultado de la ejecución:

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

    Ejemplo 3: Calcular múltiples cuantiles a la vez

    Se pueden calcular varios cuantiles de una sola vez.

    Ejemplo

    import pandas as pd

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

    print(Datos:)
    print(data)
    print()

    # Calcular múltiples cuantiles
    percentiles = data.quantile([0, 0.1, 0.25, 0.5, 0.75, 0.9, 1.0])

    print(Los cuantiles:)
    print(percentiles)
    print()

    # El cuantil también puede usar una cadena de porcentaje (solo para un valor único)
    print(fUsando la cadena '50%': {data.quantile('50%')})
    print(fUsando la cadena '0.5': {data.quantile(0.5)})

    Resultado de la ejecución:

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

    Ejemplo 4: El efecto del parámetro interpolation

    Cuando el cuantil se encuentra entre dos valores, diferentes métodos de interpolación producen resultados diferentes.

    Ejemplo

    import pandas as pd

    # Crea una Series con 6 elementos
    data = pd.Series([10, 20, 30, 40, 50, 60])

    print(Datos:, data.values)
    print()

    # Calcula el cuantil del 30% (ubicado entre 20 y 30)
    # Posición = (n-1) * q = 5 * 0.3 = 1.5
    print(Cuantil del 30% usando diferentes métodos de interpolación:)

    linear = data.quantile(0.3, interpolation='linear')
    print(flinear (interpolación lineal, predeterminado): {linear})

    lower = data.quantile(0.3, interpolation='lower')
    print(flower (tomar el valor menor): {lower})

    higher = data.quantile(0.3, interpolation='higher')
    print(fhigher (tomar el valor mayor): {higher})

    nearest = data.quantile(0.3, interpolation='nearest')
    print(fnearest (tomar el valor más cercano): {nearest})

    midpoint = data.quantile(0.3, interpolation='midpoint')
    print(fmidpoint (tomar el valor intermedio): {midpoint})

    Resultado de la ejecución:

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

    Análisis del código:

    • interpolation='linear': Realiza interpolación lineal entre dos valores, 20 + (30-20)*0.5 = 23.
    • interpolation='lower': Toma el valor con el índice menor, es decir, 20.
    • interpolation='higher': Toma el valor con el índice mayor, es decir, 30.
    • interpolation='nearest': Toma el valor más cercano a la posición del cuantil.
    • interpolation='midpoint': Toma el valor intermedio de los dos valores, es decir, (20+30)/2 = 25.

    Ejemplo 5: Usar cuantiles para identificar valores atípicos

    El rango intercuartílico (IQR) se usa a menudo para identificar valores atípicos en los datos.

    Ejemplo

    import pandas as pd

    # Crea un conjunto de datos con algunos valores atípicos
    data = pd.Series([12, 15, 18, 20, 22, 25, 28, 30, 32, 150])

    print(Datos (con valores atípicos):)
    print(data)
    print()

    # Calcula los cuartiles
    q1 = data.quantile(0.25)
    q3 = data.quantile(0.75)
    iqr = q3 - q1

    # Calcula los límites de valores atípicos
    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(fLímite inferior de valores normales: {lower_bound})
    print(fLímite superior de valores normales: {upper_bound})
    print()

    # Identificar valores atípicos
    outliers = data[(data  upper_bound)]
    print(fValores atípicos: {outliers.values})
    print()

    print(Análisis: 150 es un valor atípico evidente, supera el límite superior.)

    Resultado de la ejecución:

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

    Notas

    • El rango de valores del cuantil es de 0 a 1.
    • Por defecto, se usa el método de interpolación lineal (linear) para calcular los cuantiles.
    • Cuando q es una lista, el valor de retorno es una Series, no un valor único.
    • Los cuantiles pueden usarse para identificar valores atípicos en los datos; el método más común es la regla del IQR (1.5 veces el rango intercuartílico).
    • Para grandes volúmenes de datos, el cálculo de cuantiles es muy eficiente.

    Resumen

    Series.quantile()Es una función importante para analizar la distribución de los datos. Sus características principales incluyen:

    • Permite calcular cualquier cuantil (entre 0 y 1).
    • Puede calcular múltiples cuantiles de una sola vez.
    • Ofrece múltiples métodos de interpolación para satisfacer diferentes necesidades.
    • Es muy útil para identificar valores atípicos.

    En el análisis de datos real, los cuantiles se usan a menudo para comprender la forma de la distribución, comparar diferentes conjuntos de datos, identificar valores atípicos, etc. Junto con el diagrama de caja, se puede mostrar la distribución de los datos de manera más intuitiva.

    Pandas 常用函数Funciones comunes de Pandas

    Otras extensiones