Función Pandas Series.median()
Series.median()Es una función de Pandas utilizada para calcular la mediana (valor central) de una Series. La mediana es el valor que se encuentra en la posición central después de ordenar los datos; no se ve afectada por valores extremos y es una medida robusta de tendencia central.
Cuando los datos contienen valores atípicos o una distribución asimétrica, la mediana refleja con mayor precisión la posición central que la media. Se usa frecuentemente en escenarios como análisis de datos de ingresos, estadísticas de precios de vivienda y análisis de calificaciones.
Sintaxis básica y parámetros
median()Es una función miembro del objeto Series y se invoca directamente mediante el operador punto.
Formato de sintaxis
Series.median(axis=None, skipna=True, level=None, numeric_only=None, **kwargs)
Descripción de parámetros
| Parámetro | Tipo | Descripción | Valor predeterminado |
|---|---|---|---|
| axis | int | Especifica el eje. Series solo tiene una fila de datos; este parámetro existe principalmente para compatibilidad con DataFrame. | None |
| skipna | bool | Si es True, omite los valores NaN al calcular; si es False, devuelve NaN si se encuentra algún NaN. | True |
| level | int o str | Si la Series tiene un índice múltiple (MultiIndex), especifica el nivel a calcular. | None |
| numeric_only | bool | Si es True, solo calcula sobre datos numéricos; de lo contrario, intenta convertirlos a numéricos. | False |
Valor de retorno
- Tipo de retorno:
float - DescripciónDevuelve la mediana de todos los elementos de la Series. Si el número de elementos es par, devuelve el promedio de los dos elementos centrales.
Ejemplos
A través de una serie de ejemplos, de simples a complejos, dominemos a fondoSeries.median()el uso de.
Ejemplo 1: Uso básico - Mediana con un número impar de elementos
Para datos con un número impar de elementos, la mediana es el valor que se encuentra en el centro después de ordenar.
Ejemplo
# Crear una Series con los ingresos de los empleados
# Simular los ingresos mensuales de 7 empleados de un departamento (en miles de yuanes)
income = pd.Series([5, 6, 7, 8, 9, 10, 50])
# Calcular la mediana
median_income = income.median()
print(Ingresos mensuales de los empleados (miles de yuanes):)
print(income)
print()
print(fIngreso promedio: {income.mean():.2f} miles de yuanes)
print(fIngreso mediano: {median_income} miles de yuanes)
print()
print(Nota: La media se ve muy afectada por el valor extremo (50 mil yuanes), mientras que la mediana refleja mejor el nivel real.)
Resultado de ejecución:
员工月收入(千元): 0 5 1 6 2 7 3 8 4 9 5 10 6 50 dtype: int64 平均收入:13.57 千元 中位数收入:8.0 千元
Análisis del código:
- Datos ordenados: [5, 6, 7, 8, 9, 10, 50]
- La posición central es el 4.º elemento (índice 3), con valor 8.
- Debido al valor extremo (50), la media (13.57) se eleva, mientras que la mediana (8) refleja mejor el nivel de ingresos de la mayoría.
Ejemplo 2: Mediana con un número par de elementos
Para datos con un número par de elementos, la mediana es el promedio de los dos elementos centrales.
Ejemplo
# Crear una Series con 6 elementos
# Simular las calificaciones de 6 estudiantes
scores = pd.Series([75, 82, 88, 92, 95, 100])
# Calcular la mediana
median_score = scores.median()
print(Calificaciones de los estudiantes:)
print(scores)
print()
print(fCalificación promedio: {scores.mean():.2f})
print(fCalificación mediana: {median_score})
Resultado de ejecución:
学生考试成绩: 0 75 1 82 2 88 3 92 4 95 5 100 dtype: int64 平均成绩:88.67 中位数成绩:90.0
Análisis del código:
- Datos ordenados: [75, 82, 88, 92, 95, 100]
- Los dos elementos centrales son 88 y 92 (índices 2 y 3).
- Mediana = (88 + 92) / 2 = 90.
Ejemplo 3: Manejo de datos con valores faltantes
skipnaEl parámetro determina cómo se manejan los valores faltantes.
Ejemplo
import numpy as np
# Crear una Series con valores faltantes
data_with_nan = pd.Series([10, 20, np.nan, 30, 40, np.nan, 50])
print(Datos con valores faltantes:)
print(data_with_nan)
print()
# Por defecto skipna=True, omite NaN al calcular la mediana
median_skipna = data_with_nan.median()
print(fMediana con skipna=True (predeterminado): {median_skipna})
# Establecer skipna=False
median_no_skipna = data_with_nan.median(skipna=False)
print(fMediana con skipna=False: {median_no_skipna})
Resultado de ejecución:
包含缺失值的数据: 0 10.0 1 20.0 2 NaN 3 30.0 4 40.0 5 NaN 6 50.0 dtype: float64 skipna=True(默认)时的中位数:30.0 skipna=False 时的中位数:nan
Análisis del código:
- Datos válidos: [10, 20, 30, 40, 50], en total 5 elementos.
- Después de ordenar, el valor central es: 30.
skipna=FalseCuando ..., si hay algún NaN, devuelve NaN.
Ejemplo 4: Escenario de aplicación comparando la media y la mediana
Muestra la ventaja de la mediana en el manejo de datos asimétricos.
Ejemplo
# Simular los ingresos mensuales de 10 hogares de una comunidad
# La mayoría tiene ingresos entre 3000 y 5000 yuanes, pero hay unos pocos de ingresos altos
income_data = pd.Series([3000, 3500, 3800, 4000, 4200, 4500, 4800, 5000, 8000, 50000])
print(Ingresos mensuales de los hogares de la comunidad (yuanes):)
print(income_data)
print()
mean_income = income_data.mean()
median_income = income_data.median()
print(fValor promedio: {mean_income:.2f} yuanes)
print(fMediana: {median_income} yuanes)
print()
print(Análisis:)
print(El promedio (10380 yuanes) se eleva significativamente por el valor extremo (50000 yuanes).)
print(La mediana (4350 yuanes) refleja mejor el nivel de ingresos real de la mayoría de los hogares.)
print(Por eso las agencias de estadística suelen usar la mediana al publicar datos de ingresos.)
Resultado de ejecución:
小区住户月收入数据(元): 0 3000 1 3500 2 3800 3 4000 4 4200 5 4500 6 4800 7 5000 8 8000 9 50000 dtype: int64 平均值:10380.00 元 中位数:4350.0 元
Notas importantes
- La mediana no es sensible a los valores extremos; es más robusta que la media.
- Cuando la cantidad de datos es par, la mediana es el promedio de los dos números centrales.
- Cuando los datos presentan una distribución claramente asimétrica, la mediana refleja mejor la posición central que la media.
skipnaEl comportamiento del parámetro es el mismomean()que el de.
Resumen
Series.median()Es una función importante para describir la tendencia central de los datos. Sus principales características incluyen:
- No se ve afectada por valores extremos; el resultado del cálculo es robusto.
- Para un número par de elementos, devuelve el promedio de los dos elementos centrales.
- Es especialmente útil en el análisis de datos con distribución asimétrica, como los ingresos y los precios de vivienda.
- La sintaxis y los parámetros
mean()son exactamente iguales, fáciles de aprender y usar.
En el análisis de datos real, se recomienda calcular tanto la media como la mediana para comprender mejor las características de la distribución de los datos. Cuando la diferencia entre ambas es grande, indica que los datos pueden tener una distribución asimétrica o valores atípicos.
Otras extensiones
Funciones comunes de Pandas