Maison >développement back-end >Tutoriel Python >Comment puis-je détecter et exclure les valeurs aberrantes dans un DataFrame Pandas à l'aide des écarts types ?

Comment puis-je détecter et exclure les valeurs aberrantes dans un DataFrame Pandas à l'aide des écarts types ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-11 10:26:16911parcourir

How Can I Detect and Exclude Outliers in a Pandas DataFrame Using Standard Deviations?

Détecter et exclure les valeurs aberrantes dans un DataFrame Pandas à l'aide des écarts types

Les valeurs aberrantes sont des points de données qui s'écartent considérablement du reste des données dans un distribution. L'identification et l'exclusion des valeurs aberrantes peuvent améliorer l'analyse des données en supprimant les observations biaisées ou bruitées. Pandas propose plusieurs méthodes pour gérer les valeurs aberrantes, notamment en utilisant les écarts types.

Pour exclure les lignes dont les valeurs dépassent un certain nombre d'écarts types par rapport à la moyenne, nous pouvons utiliser la fonction scipy.stats.zscore. Cette fonction calcule le score Z pour chaque point de données, représentant le nombre d'écarts types par rapport à la moyenne.

import pandas as pd
import numpy as np
from scipy import stats

# Create a sample dataframe
df = pd.DataFrame({'Vol': [1200, 1230, 1250, 1210, 4000]})

# Calculate Z-score for the 'Vol' column
zscores = stats.zscore(df['Vol'])

# Exclude rows with Z-score greater than 3
filtered_df = df[np.abs(zscores) < 3]

Cette approche détecte et exclut spécifiquement les valeurs aberrantes dans la colonne « Vol ». Pour plus de flexibilité, nous pouvons appliquer ce filtre à plusieurs colonnes simultanément :

# Calculate Z-scores for all columns
zscores = stats.zscore(df)

# Exclude rows with any column Z-score greater than 3
filtered_df = df[(np.abs(zscores) < 3).all(axis=1)]

En ajustant la valeur seuil (3 dans ce cas), nous pouvons contrôler le niveau d'exclusion des valeurs aberrantes. Un seuil plus petit entraînera une détection plus conservatrice des valeurs aberrantes, tandis qu'un seuil plus grand exclura davantage de valeurs aberrantes potentielles.

Grâce à cette approche, nous pouvons identifier et supprimer efficacement les valeurs aberrantes susceptibles de fausser l'analyse de notre Pandas DataFrame.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn