Fonction Series.std() 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 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.
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 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
# 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 avec
mean()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.
Autres extensions
Fonctions courantes de Pandas