Fonction Pandas Series.mean()

Pandas 常用函数Fonctions courantes de Pandas


Series.mean()est une fonction dans Pandas utilisée pour calculer la moyenne de tous les éléments d'une Series. La moyenne est l'un des indicateurs statistiques les plus couramment utilisés, représentant la tendance centrale d'un ensemble de données.

Que vous calculiez un salaire moyen, des ventes moyennes ou des moyennes de notes,mean()il peut vous aider à accomplir la tâche rapidement. C'est un indicateur clé pour décrire la tendance centrale d'un ensemble de données.


Syntaxe de base et paramètres

mean()est une fonction membre de l'objet Series, appelée directement via l'opérateur point.

Format de syntaxe

Series.mean(axis=None, skipna=True, level=None, numeric_only=None, **kwargs)

Description du paramètre

Paramètre Type Description Valeur par défaut
axis int Spécifie l'axe. Une Series n'a qu'une seule ligne de données, donc ce paramètre sert principalement à la compatibilité avec DataFrame. Aucune
skipna bool Si True, les valeurs NaN sont ignorées lors du calcul ; si False, le résultat renvoie NaN en présence de NaN. True
level int ou str Si la Series possède un MultiIndex, spécifie le niveau à calculer. Aucune
numeric_only bool Si True, seules les données numériques sont calculées ; sinon, il tente de convertir en numérique. False

Valeur de retour

  • Type de retour:float(Même si l'entrée est un entier, la valeur de retour est convertie en float)
  • Description: Renvoie la moyenne de tous les éléments valides de la Series. Si tous les éléments sont NaN, renvoie NaN.

Exemples

Maîtrisons à fond à travers une série d'exemples, du simple au complexe,Series.mean()l'utilisation de.

Exemple 1 : Utilisation de base - Calculer la moyenne des notes des étudiants

L'utilisation la plus élémentaire consiste à créer une Series numérique, puis à appelermean()pour calculer la moyenne.

Exemple

import pandas as pd

# Créer une Series contenant les notes des étudiants
# Simuler les notes d'examen de 8 étudiants d'une classe
scores = pd.Series([85, 92, 78, 90, 88, 76, 95, 82])

# Calculer la note moyenne
average_score = scores.mean()

print("Notes d'examen des étudiants :")
print(scores)
print()
print(f"Note moyenne : {average_score:.2f} points")

Sortie :

学生考试成绩:
0    85
1    92
2    78
3    90
4    88
5    76
6    95
7    82
dtype: int64

平均成绩:85.75 分

Explication du code :

  • Création d'une Series contenant les notes de 8 étudiants.
  • mean()Calcule la somme de toutes les notes (685) divisée par le nombre d'étudiants (8), donnant la moyenne 85.75.
  • Remarque : La valeur renvoyée est un float, même si l'entrée est un entier.

Exemple 2 : Gestion des données avec des valeurs manquantes

Les données réelles contiennent souvent des valeurs manquantes,skipnale paramètre détermine comment gérer ces valeurs manquantes.

Exemple

import pandas as pd
import numpy as np

# Créer une Series contenant des valeurs manquantes
# Simuler un étudiant absent à certains examens pour cause de maladie
scores_with_nan = pd.Series([85, 92, np.nan, 90, 88, np.nan, 95, 82])

print("Données incluant les notes d'examens manquants :")
print(scores_with_nan)
print()

# Par défaut skipna=True, ignorer NaN lors du calcul de la moyenne
average_skipna = scores_with_nan.mean()
print(f"Note moyenne avec skipna=True (par défaut) : {average_skipna:.2f}")

# Définir skipna=False, renvoyer NaN en cas de NaN
average_no_skipna = scores_with_nan.mean(skipna=False)
print(f"Note moyenne avec skipna=False : {average_no_skipna}")

Sortie :

包含缺考成绩的数据:
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

Explication du code :

  • Quandskipna=TrueLorsque (valeur par défaut), seule la moyenne des valeurs valides est calculée.
  • Processus de calcul : (85 + 92 + 90 + 88 + 95 + 82) / 6 = 532 / 6 = 88.67
  • Quandskipna=FalseLorsque , tant qu'un NaN existe, le résultat renvoie NaN.

Exemple 3 : Utilisation d'une Series avec MultiIndex

Pour une Series avec un index hiérarchique (MultiIndex), vous pouvez spécifier le niveau dont calculer la moyenne.

Exemple

import pandas as pd

# Créer une Series avec un MultiIndex
# Simuler les notes d'étudiants de deux classes
multi_index_scores = pd.Series(
    [85, 92, 78, 90, 88, 76, 95, 82],
    index=pd.MultiIndex.from_tuples([
        ('Classe A', 'Étudiant 1'), ('Classe A', 'Étudiant 2'), ('Classe A', 'Étudiant 3'), ('Classe A', 'Étudiant 4'),
        ('Classe B', 'Étudiant 1'), ('Classe B', 'Étudiant 2'), ('Classe B', 'Étudiant 3'), ('Classe B', 'Étudiant 4')
    ],
    names=['Classe', 'Étudiant']
    )
)

print("Notes des étudiants de deux classes :")
print(multi_index_scores)
print()

# Calculer la moyenne des notes de tous les étudiants
overall_mean = multi_index_scores.mean()
print(f"Moyenne des notes de tous les étudiants : {overall_mean:.2f}")
print()

# Calculer la moyenne des notes par classe (en utilisant le paramètre level)
class_a_mean = multi_index_scores.xs('Class A', level='Class').mean()
class_b_mean = multi_index_scores.xs('Class B', level='Class').mean()

print(f"Moyenne des notes des étudiants de la classe A : {class_a_mean:.2f}")
print(f"Moyenne des notes des étudiants de la classe B : {class_b_mean:.2f}")

Sortie :

两个班级的学生成绩:
班级   学生
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

Explication du code :

  • Création d'une Series avec deux niveaux d'index, nommés "Class" et "Student" respectivement.
  • Appeler directementmean()calculera la moyenne de tous les éléments.
  • En utilisant laxs()méthode, vous pouvez filtrer les données selon un certain niveau, puis calculer la moyenne.

Exemple 4 : Application à l'analyse de données réelles

Combinée à des scénarios métier réels, démontrantmean()des applications typiques de.

Exemple

import pandas as pd
import numpy as np

# Créer des données simulées de cours de clôture quotidiens pour les actions
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=['lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi',
          'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi'])

# Créer des données pour deux semaines
week1 = stock_prices[:5]
week2 = stock_prices[5:]

print("Cours des actions de la semaine 1:")
print(week1)
print(f"Cours moyen de la semaine 1: {week1.mean():.2f}")
print()

print("Cours des actions de la semaine 2:")
print(week2)
print(f"Prix moyen de la semaine 2 : {week2.mean():.2f}")
print()

# Calculer la différence de prix moyens entre les deux semaines
price_diff = week2.mean() - week1.mean()
print(f"Différence de prix moyen entre les deux semaines : {price_diff:.2f}")

Sortie :

第一周股票价格:
周一    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

Notes

  • mean()La valeur de retour est toujours un float, même si toutes les données d'entrée sont des entiers.
  • La moyenne est sensible aux valeurs extrêmes (valeurs aberrantes) ; les valeurs extrêmes peuvent affecter considérablement le résultat du calcul.
  • S'il y a de nombreuses valeurs manquantes dans les données, en utilisantskipna=Truevous devez savoir que la moyenne est calculée sur la base d'une partie seulement des données.
  • Pour les Series contenant des données non numériques, vous devez d'abord nettoyer les données ou utiliser lanumeric_only=Trueparamètre.

Résumé

Series.mean()est l'une des fonctions statistiques les plus couramment utilisées dans Pandas. Ses principales caractéristiques incluent :

  • Simple et facile à utiliser, appelée directement via l'opérateur point.
  • Prend en charge le traitement des valeurs manquantes via leskipnaparamètre.
  • Prend en charge MultiIndex, peut calculer en sélectionnant un niveau.
  • La valeur de retour est toujours un float, ce qui garantit la précision.

La moyenne est un indicateur important pour décrire la tendance centrale d'un ensemble de données, mais lorsque des valeurs extrêmes existent dans les données, vous devrez peut-être envisager d'utiliser la médiane (median()) afin de mieux refléter la position centrale des données.

Pandas 常用函数Fonctions courantes de Pandas

Autres extensions