Función Pandas Series.std()

Pandas 常用函数Funciones comunes de Pandas


Series.std()Es una función de Pandas utilizada para calcular la desviación estándar de una Serie. La desviación estándar es una medida del grado de dispersión de los datos, que indica el grado de desviación promedio entre los datos y su media.

Cuanto mayor es la desviación estándar, más dispersos están los datos; cuanto menor es la desviación estándar, más concentrados están los datos. Se utiliza frecuentemente en escenarios como control de calidad, evaluación de riesgos y análisis de calificaciones de exámenes.


Sintaxis básica y parámetros

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

Formato de sintaxis

Series.std(axis=None, skipna=True, level=None, numeric_only=None, ddof=1, **kwargs)

Descripción de parámetros

Parámetro Tipo Descripción Valor predeterminado
axis int Especifica el eje. Como una Serie solo tiene una fila de datos, este parámetro existe principalmente para la compatibilidad con DataFrame. None
skipna bool Si es True, se omiten los valores NaN al calcular; si es False, el resultado devuelve NaN cuando se encuentra un NaN. True
level int o str Si la Serie 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 convertir a numérico. False
ddof int Parámetro de ajuste de grados de libertad. ddof=1 usa la desviación estándar muestral (n-1), ddof=0 usa la desviación estándar poblacional (n). 1

Valor de retorno

  • Tipo de retorno:float
  • DescripciónDevuelve la desviación estándar de los elementos de la Serie. Por defecto usa la desviación estándar muestral (dividida por n-1).

Ejemplos

Vamos a dominar completamente, a través de una serie de ejemplos de simples a complejos,Series.std()su uso.

Ejemplo 1: Uso básico: comprender el concepto de desviación estándar

La desviación estándar mide la dispersión de los datos; cuanto mayor es el valor, más dispersos están los datos.

Ejemplo

import pandas as pd
import numpy as np

# Datos de calificaciones de dos grupos
# Grupo A: calificaciones relativamente concentradas
group_a = pd.Series([85, 86, 87, 88, 89])

# Grupo B: calificaciones relativamente dispersas
group_b = pd.Series([70, 75, 85, 95, 100])

print("Calificaciones del grupo A (relativamente concentradas):")
print(group_a)
print(f"Promedio: {group_a.mean():.2f}")
print(f"Desviación estándar: {group_a.std():.2f}")
print()

print("Calificaciones del grupo B (relativamente dispersas):")
print(group_b)
print(f"Promedio: {group_b.mean():.2f}")
print(f"Desviación estándar: {group_b.std():.2f}")
print()

print("Análisis: aunque los promedios de ambos grupos son iguales (85), la desviación estándar del grupo B es mayor, lo que indica una mayor diferencia en las calificaciones.")

Resultado de la ejecución:

A组成绩(较集中):
0    85
1    86
2    87
3    88
4    89
dtype: int64
平均值:85.00
标准差:1.58

B组成绩(较分散):
0    70
1    75
2    85
3    95
4   100
dtype: int64
平均值:85.00
标准差:12.50

分析:虽然两组平均值相同(85),但 B 组标准差更大,说明成绩差异更大。

Análisis del código:

  • La desviación estándar del grupo A es de aproximadamente 1.58, muy concentrada.
  • La desviación estándar del grupo B es de aproximadamente 12.50, mucho más dispersa.
  • Esto muestra que incluso si el promedio es el mismo, la forma de distribución de los datos puede ser completamente diferente.

Ejemplo 2: Efecto del parámetro ddof

ddofEl parámetro controla si se usa la desviación estándar muestral o poblacional.

Ejemplo
import pandas as pd
import numpy as np

# Crear un conjunto de datos
data = pd.Series([2, 4, 4, 4, 5, 5, 7, 9])

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

# Por defecto ddof=1, usa la desviación estándar muestral (dividida por n-1)
sample_std = data.std(ddof=1)
print(f"Desviación estándar muestral (ddof=1): {sample_std:.4f}")

# ddof=0, usa la desviación estándar poblacional (dividida por n)
population_std = data.std(ddof=0)
print(f"Desviación estándar poblacional (ddof=0): {population_std:.4f}")
print()

print("Explicación:")
print("Desviación estándar muestral = sqrt(sum((x-mean)^2) / (n-1))")
print("Desviación estándar poblacional = sqrt(sum((x-mean)^2) / n)")
print("Cuando el volumen de datos es grande, la diferencia entre ambos es muy pequeña.")

Resultado de la ejecución:

数据:
0    2
1    4
2    4
3    4
4    5
5    5
6    7
7    9
dtype: int64

样本标准差(ddof=1):2.2678
总体标准差(ddof=0):2.1213

Análisis del código:

  • La desviación estándar muestral (ddof=1) usa n-1 como divisor y es adecuada para muestras extraídas de una población.
  • La desviación estándar poblacional (ddof=0) usa n como divisor y es adecuada para todo el conjunto de datos.
  • Pandas usa por defecto ddof=1, es decir, la desviación estándar muestral.

Ejemplo 3: Manejo de datos con valores faltantes

Ejemplo

import pandas as pd
import numpy as np

# Crear una Serie 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 desviación estándar
std_skipna = data_with_nan.std()
print(f"Desviación estándar con skipna=True (predeterminado): {std_skipna:.4f}")

# Establecer skipna=False
std_no_skipna = data_with_nan.std(skipna=False)
print(f"Desviación estándar con skipna=False: {std_no_skipna}")

Resultado de la 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(默认)时的标准差:15.8114
skipna=False 时的标准差:nan

Ejemplo 4: Aplicación práctica: análisis de volatilidad de rendimientos de acciones

La desviación estándar se utiliza frecuentemente en el ámbito financiero para medir el riesgo.

Ejemplo

import pandas as pd

# Simular los rendimientos diarios (%) de dos acciones durante 10 días
stock_a = pd.Series([1.2, 0.8, -0.5, 1.5, 0.3, -0.2, 1.0, 0.7, -0.3, 0.5])
stock_b = pd.Series([3.5, -2.0, 4.2, -1.5, 2.8, -3.0, 1.2, -0.8, 3.0, -2.4])

print("Rendimiento diario de la acción A (%):")
print(stock_a)
print(f"Rendimiento promedio: {stock_a.mean():.2f}%")
print(f"Volatilidad (desviación estándar): {stock_a.std():.2f}%")
print()

print("Rendimiento diario de la acción B (%):")
print(stock_b)
print(f"Rendimiento promedio: {stock_b.mean():.2f}%")
print(f"Volatilidad (desviación estándar): {stock_b.std():.2f}%")
print()

print("Análisis:")
print("La desviación estándar de la acción B es mayor, lo que indica que los rendimientos fluctúan más violentamente y el riesgo es mayor.")
print("Aunque los rendimientos promedio de ambos pueden ser similares, el nivel de riesgo es diferente.")

Resultado de la ejecución:

股票 A 日收益率(%):
0    1.2
1    0.8
2   -0.5
3    1.5
4    0.3
5   -0.2
6    1.0
7    0.7
8   -0.3
9    0.5
dtype: int64
平均收益率:0.60%
波动率(标准差):0.68%

股票 B 日收益率(%):
0    3.5
1   -2.0
2    4.2
3   -1.5
4    2.8
5   -3.0
6    1.2
7   -0.8
8    3.0
9   -2.4
dtype: int64
平均收益率:0.60%
波动率(标准差):2.59%

分析:股票 B 的波动率是股票 A 的约 4 倍,说明风险高得多。

Notas

  • Por defecto se usa la desviación estándar muestral (ddof=1), adecuada para el análisis estadístico.
  • Si necesita calcular la desviación estándar poblacional, establezca ddof=0.
  • La unidad de la desviación estándar es la misma que la de los datos originales, lo que facilita su comprensión intuitiva.
  • Cuanto mayor es la desviación estándar, más dispersos están los datos; cuanto menor es la desviación estándar, más concentrados están los datos.

Resumen

Series.std()Es una función importante para medir el grado de dispersión de los datos. Sus principales características incluyen:

  • Por defecto usa la desviación estándar muestral (ddof=1), más adecuada para el análisis estadístico.
  • Se puede utilizar junto conmean()en combinación para describir de manera integral las características de distribución de los datos.
  • En el ámbito financiero, la desviación estándar se utiliza a menudo para medir el riesgo (volatilidad).
  • El cuadrado de la desviación estándar es la varianza (var())。

En el análisis de datos real, la desviación estándar se utiliza a menudo junto con indicadores como la media y la mediana para obtener una comprensión completa de la distribución de los datos.

Pandas 常用函数Funciones comunes de Pandas

Otras extensiones