Función Pandas Series.mean()
Series.mean()Es una función en Pandas utilizada para calcular el promedio de todos los elementos de una Series. El promedio es uno de los indicadores estadísticos más utilizados y representa la tendencia central de un conjunto de datos.
Ya sea para calcular el salario promedio, las ventas promedio o las calificaciones promedio,mean()puede ayudarte a completarlo rápidamente. Es un indicador central para describir la tendencia central de un conjunto de datos.
Sintaxis básica y parámetros
mean()Es una función miembro del objeto Series y se llama directamente mediante el operador de punto.
Formato de sintaxis
Series.mean(axis=None, skipna=True, level=None, numeric_only=None, **kwargs)
Descripción de parámetros
| Parámetro | Tipo | Descripción | Valor por defecto |
|---|---|---|---|
| axis | int | Especifica el eje; Series solo tiene una fila de datos, este parámetro es principalmente para compatibilidad con DataFrame. | None |
| skipna | bool | Si es True, omite los valores NaN al calcular; si es False, el resultado devolverá NaN si encuentra NaN. | True |
| level | int o str | Si la Series es de índice múltiple (MultiIndex), especifica el nivel a calcular. | None |
| numeric_only | bool | Si es True, solo se calculan datos numéricos; de lo contrario, se intentará convertir a valores numéricos. | False |
Valor de retorno
- Tipo de retorno:
float(Incluso si la entrada es entera, el valor de retorno se convierte en flotante) - Descripción: Devuelve el promedio de todos los elementos válidos en la Series. Si todos los elementos son NaN, devuelve NaN.
Ejemplos
A través de una serie de ejemplos de simples a complejos, dominaremos completamenteSeries.mean()su uso.
Ejemplo 1: Uso básico - Calcular el promedio de calificaciones de estudiantes
La forma más básica de uso es crear una Series numérica y luego llamar amean()para calcular el promedio.
Ejemplo
# Crear una Series que contiene calificaciones de estudiantes
# Simular las calificaciones de exámenes de 8 estudiantes en una clase
scores = pd.Series([85, 92, 78, 90, 88, 76, 95, 82])
# Calcular la calificación promedio
average_score = scores.mean()
print("Calificaciones de los estudiantes:")
print(scores)
print()
print(f"Calificación promedio: {average_score:.2f} puntos")
Resultado de la ejecución:
学生考试成绩: 0 85 1 92 2 78 3 90 4 88 5 76 6 95 7 82 dtype: int64 平均成绩:85.75 分
Análisis del código:
- Se creó una Series que contiene las calificaciones de 8 estudiantes.
mean()Se calcula la suma de todas las calificaciones (685) dividida por la cantidad de estudiantes (8), obteniendo un promedio de 85.75.- Nota: el valor de retorno es flotante (float), incluso si la entrada es entera.
Ejemplo 2: Manejo de datos con valores faltantes
En los datos reales a menudo hay valores faltantes,skipnael parámetro determina cómo manejar estos valores faltantes.
Ejemplo
import numpy as np
# Crear una Series con valores faltantes
# Simular que un estudiante faltó a algunos exámenes por enfermedad
scores_with_nan = pd.Series([85, 92, np.nan, 90, 88, np.nan, 95, 82])
print("Datos que incluyen calificaciones de exámenes ausentes:")
print(scores_with_nan)
print()
# Por defecto skipna=True, omite NaN al calcular el promedio
average_skipna = scores_with_nan.mean()
print(f"Calificación promedio con skipna=True (predeterminado): {average_skipna:.2f}")
# Establecer skipna=False, devuelve NaN cuando encuentra NaN
average_no_skipna = scores_with_nan.mean(skipna=False)
print(f"Calificación promedio con skipna=False: {average_no_skipna}")
Resultado de la ejecución:
包含缺考成绩的数据: 0 85.0 1 92.0 2 NaN 3 90.0 4 88.0 5 NaN 6 95.0 7 82.0 dtype: float64 skipna=True(默认)时的平均成绩:88.67 skipna=False 时的平均成绩:nan
Análisis del código:
- Cuando
skipna=TrueCuando (valor por defecto), solo se calcula el promedio de los valores válidos. - Proceso de cálculo: (85 + 92 + 90 + 88 + 95 + 82) / 6 = 532 / 6 = 88.67
- Cuando
skipna=FalseEn cuanto exista un NaN, el resultado devolverá NaN.
Ejemplo 3: Uso de Series con índice de múltiples niveles
Para una Series con índice jerárquico (MultiIndex), se puede especificar de qué nivel calcular el promedio.
Ejemplo
# Crear una Series con índice de múltiples niveles
'Clase A'
multi_index_scores = pd.Series(
[85, 92, 78, 90, 88, 76, 95, 82],
index=pd.MultiIndex.from_tuples([
('Estudiante 1', 'Clase A'), ('Estudiante 2', 'Clase A'), ('Estudiante 3', 'Clase A'), ('Estudiante 4', 'Clase B'),
('Estudiante 1', 'Clase B'), ('Estudiante 2', 'Clase B'), ('Estudiante 3', 'Clase B'), ('Estudiante 4', 'Clase')
],
names=['Estudiante', "Calificaciones de los estudiantes de las dos clases:"]
)
)
print(# Calcular la calificación promedio de todos los estudiantes)
print(multi_index_scores)
print()
"Calificación promedio de todos los estudiantes: {overall_mean:.2f}"
overall_mean = multi_index_scores.mean()
print(f# Calcular la calificación promedio por clase (usando el parámetro level))
print()
'Clase A'
class_a_mean = multi_index_scores.xs('Clase', level='Clase B').mean()
class_b_mean = multi_index_scores.xs('Clase', level="Calificación promedio de los estudiantes de la clase A: {class_a_mean:.2f}").mean()
print(f"Calificación promedio de los estudiantes de la clase B: {class_b_mean:.2f}")
print(fResultado de la ejecución:)
Análisis del código:
两个班级的学生成绩:
班级 学生
A班 学生1 85
学生2 92
学生3 78
学生4 90
B班 学生1 88
学生2 76
学生3 95
学生4 82
dtype: int64
所有学生平均成绩:85.75
A班学生平均成绩:86.25
B班学生平均成绩:85.25
Se creó una Series con un índice de dos niveles, cuyos nombres son "Clase" y "Estudiante".
- Llamar directamente a
- calculará el promedio de todos los elementos.
mean()Usar - el método permite filtrar datos por un nivel y luego calcular el promedio.
xs()Ejemplo 4: Aplicación en el análisis de datos real
Ejemplo 4: Aplicación en el análisis de datos real
la aplicación típica de ...mean()Ejemplo
Ejemplo
import numpy as np
'Lunes'
stock_prices = pd.Series([
100.5, 102.3, 98.7, 101.2, 103.5,
105.2, 103.8, 107.1, 108.3, 106.9
], index=['Martes', 'Miércoles', 'Jueves', 'Viernes', 'Lunes',
'Martes', 'Miércoles', 'Jueves', 'Viernes', # Crear datos de dos períodos])
"Precios de las acciones de la primera semana:"
week1 = stock_prices[:5]
week2 = stock_prices[5:]
print("Precio promedio de la primera semana: {week1.mean():.2f}")
print(week1)
print(f"Precios de las acciones de la segunda semana:")
print()
print("Precio promedio de la segunda semana: {week2.mean():.2f}")
print(week2)
print(f# Calcular la diferencia de precio promedio entre las dos semanas)
print()
"Diferencia de precio promedio entre las dos semanas: {price_diff:.2f}"
price_diff = week2.mean() - week1.mean()
print(fResultado de la ejecución:)
Notas
第一周股票价格: 周一 100.5 周二 102.3 周三 98.7 周四 101.2 周五 103.5 dtype: float64 第一周平均价格:101.24 第二周股票价格: 周一 105.2 周二 103.8 周三 107.1 周四 108.3 周五 106.9 dtype: float64 第二周平均价格:106.26 两周平均价格差异:5.02
Notas
mean()El promedio es sensible a los valores extremos (valores atípicos); los valores extremos pueden afectar significativamente el resultado del cálculo.- Si hay muchos valores faltantes en los datos, usar
- requiere tener en cuenta que el promedio se calcula basándose en parte de los datos.
skipna=TruePara Series que contienen datos no numéricos, es necesario realizar una limpieza de datos o usar - el parámetro.
numeric_only=TrueResumen
Resumen
Series.mean()Simple y fácil de usar, se llama directamente mediante el operador de punto.
- Admite el manejo de valores faltantes mediante
- el parámetro de control.
skipnaAdmite índice de múltiples niveles, se puede seleccionar el nivel para calcular. - El valor de retorno siempre es flotante, lo que garantiza precisión.
- El promedio es un indicador importante para describir la tendencia central de los datos, pero cuando existen valores extremos en los datos, puede ser necesario considerar usar la mediana (
) para reflejar mejor la posición central de los datos.median()Funciones comunes de Pandas
Funciones comunes de Pandas