Función Pandas Series.quantile()
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
# 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
# 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
# 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
# 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
# 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.
Otras extensiones
Funciones comunes de Pandas