Fonction Series.std() de Pandas

Pandas 常用函数Fonctions courantes de Pandas


Series.std()C'est une fonction de Pandas permettant de calculer l'écart type d'une Series. L'écart type est une mesure de dispersion des données, représentant le degré moyen d'écart entre les données et leur moyenne.

Plus l'écart type est grand, plus les données sont dispersées ; plus l'écart type est petit, plus les données sont concentrées. Il est souvent utilisé dans des scénarios tels que le contrôle qualité, l'évaluation des risques et l'analyse des notes d'examen.


Syntaxe de base et paramètres

std()C'est une fonction membre de l'objet Series et elle est appelée directement via l'opérateur point.

Format de syntaxe

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

Description du paramètre

Paramètre Type Description Valeur par défaut
axis int Spécifie l'axe. Series ne contient qu'une seule ligne de données ; ce paramètre est principalement destiné à la compatibilité avec DataFrame. Aucune
skipna bool Si True, ignore les valeurs NaN lors du calcul ; si False, le résultat renverra NaN lorsqu'il rencontre NaN. True
level int ou str Si la Series possède un MultiIndex, spécifiez le niveau à calculer. Aucune
numeric_only bool Si True, ne traite que les données numériques ; sinon, tente de convertir en numérique. False
ddof int Paramètre d'ajustement delta des degrés de liberté. ddof=1 utilise l'écart-type de l'échantillon (n-1), ddof=0 utilise l'écart-type de la population (n). 1

Valeur de retour

  • Type de retour:float
  • Description: Renvoie l'écart-type des éléments de la Series. Par défaut, utilise l'écart-type de l'échantillon (divisé par n-1).

Exemples

À travers une série d'exemples du simple au complexe, apprenons à maîtriser parfaitementSeries.std()l'utilisation.

Exemple 1 : Utilisation de base - Comprendre le concept d'écart-type

L'écart-type mesure la dispersion des données ; plus la valeur est grande, plus les données sont dispersées.

Exemple

import pandas as pd
import numpy as np

# Deux ensembles de données de scores
# Groupe A : les scores sont relativement concentrés
group_a = pd.Series([85, 86, 87, 88, 89])

# Groupe B : les scores sont relativement dispersés
group_b = pd.Series([70, 75, 85, 95, 100])

print("Scores du groupe A (plus concentrés) :")
print(group_a)
print(f"Moyenne : {group_a.mean():.2f}")
print(f"Écart-type : {group_a.std():.2f}")
print()

print("Scores du groupe B (plus dispersés) :")
print(group_b)
print(f"Moyenne : {group_b.mean():.2f}")
print(f"Écart-type : {group_b.std():.2f}")
print()

print("Analyse : Bien que les deux groupes aient la même moyenne (85), le groupe B a un écart-type plus grand, ce qui indique des différences de scores plus importantes.")

Sortie :

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 组标准差更大,说明成绩差异更大。

Explication du code :

  • L'écart-type du groupe A est d'environ 1.58, très concentré.
  • L'écart-type du groupe B est d'environ 12.50, beaucoup plus dispersé.
  • Cela montre que même avec la même moyenne, la distribution des données peut être complètement différente.

Exemple 2 : Le rôle du paramètre ddof

ddofLe paramètre contrôle s'il faut utiliser l'écart-type d'échantillon ou l'écart-type de population.

Exemple
import pandas as pd
import numpy as np

# Créer un jeu de données
data = pd.Series([2, 4, 4, 4, 5, 5, 7, 9])

print("Données :")
print(data)
print()

# Par défaut ddof=1, utilise l'écart-type d'échantillon (divisé par n-1)
sample_std = data.std(ddof=1)
print(f"Écart-type d'échantillon (ddof=1): {sample_std:.4f}")

# ddof=0, utilise l'écart-type de population (divisé par n)
population_std = data.std(ddof=0)
print(f"Écart-type de population (ddof=0): {population_std:.4f}")
print()

print("Explication :")
print("Écart-type d'échantillon = sqrt(sum((x-mean)^2) / (n-1))")
print("Écart-type de population = sqrt(sum((x-mean)^2) / n)")
print("Lorsque la quantité de données est importante, la différence entre les deux est très faible.")

Sortie :

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

Explication du code :

  • L'écart-type d'un échantillon (ddof=1) utilise n-1 comme diviseur et convient aux échantillons tirés d'une population.
  • L'écart-type de population (ddof=0) utilise n comme diviseur et convient à l'ensemble des données.
  • Pandas utilise ddof=1 par défaut, c'est-à-dire l'écart-type d'un échantillon.

Exemple 3 : Traitement des données contenant des valeurs manquantes

Exemple

import pandas as pd
import numpy as np

# Créer une Series contenant des valeurs manquantes
data_with_nan = pd.Series([10, 20, np.nan, 30, 40, np.nan, 50])

print("Données contenant des valeurs manquantes :")
print(data_with_nan)
print()

# Par défaut skipna=True, ignore les NaN lors du calcul de l'écart type
std_skipna = data_with_nan.std()
print(f"Écart type lorsque skipna=True (par défaut) : {std_skipna:.4f}")

# Définir skipna=False
std_no_skipna = data_with_nan.std(skipna=False)
print(f"Écart type lorsque skipna=False : {std_no_skipna}")

Sortie :

包含缺失值的数据:
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

Exemple 4 : Application pratique - Analyse de la volatilité des rendements boursiers

L'écart type est couramment utilisé en finance pour mesurer le risque.

Exemple

import pandas as pd

# Simuler 10 jours de rendements quotidiens (%) pour deux actions
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("Rendements quotidiens de l'action A (%) :")
print(stock_a)
print(f"Rendement moyen : {stock_a.mean():.2f}%")
print(f"Volatilité (écart-type) : {stock_a.std():.2f}%")
print()

print("Rendements quotidiens de l'action B (%) :")
print(stock_b)
print(f"Rendement moyen : {stock_b.mean():.2f}%")
print(f"Volatilité (écart-type) : {stock_b.std():.2f}%")
print()

print("Analyse :")
print("L'action B a un écart-type plus grand, ce qui indique des rendements plus volatils et un risque plus élevé.")
print("Bien que leurs rendements moyens puissent être similaires, le niveau de risque est différent.")

Sortie :

股票 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 倍,说明风险高得多。

Notes

  • Par défaut, l'écart-type d'échantillon (ddof=1) est utilisé, ce qui convient à l'analyse statistique.
  • Si vous devez calculer l'écart-type de la population, définissez ddof=0.
  • L'unité de l'écart-type est la même que celle des données d'origine, ce qui le rend facile à comprendre intuitivement.
  • Plus l'écart-type est grand, plus les données sont dispersées ; plus l'écart-type est petit, plus les données sont concentrées.

Résumé

Series.std()Il s'agit d'une fonction importante pour mesurer la dispersion des données. Ses principales caractéristiques incluent :

  • Par défaut, elle utilise l'écart-type d'échantillon (ddof=1), qui est plus adapté à l'analyse statistique.
  • Elle peut être utilisée conjointement avecmean()pour décrire de manière complète les caractéristiques de distribution des données.
  • En finance, l'écart-type est souvent utilisé pour mesurer le risque (la volatilité).
  • Le carré de l'écart-type est la variance (var())。

Dans l'analyse de données réelle, l'écart-type est souvent utilisé avec des indicateurs tels que la moyenne et la médiane pour former une compréhension complète de la distribution des données.

Pandas 常用函数Fonctions courantes de Pandas

Autres extensions