Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mithilfe von Z-Scores Ausreißer aus einem Pandas-DataFrame identifizieren und entfernen?

Wie kann ich mithilfe von Z-Scores Ausreißer aus einem Pandas-DataFrame identifizieren und entfernen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-30 12:39:14632Durchsuche

How Can I Identify and Remove Outliers from a Pandas DataFrame Using Z-scores?

Ausreißer in einem Pandas-DataFrame identifizieren und ausschließen

In einem Pandas-DataFrame mit mehreren Spalten können Ausreißer anhand bestimmter Spaltenwerte identifiziert und ausgeschlossen werden Verbesserung der Datengenauigkeit und -zuverlässigkeit. Ausreißer oder Extremwerte, die erheblich vom Großteil der Daten abweichen, können die Analyseergebnisse verzerren und zu falschen Schlussfolgerungen führen.

Um Ausreißer effektiv zu filtern, besteht ein robuster Ansatz darin, sich auf statistische Techniken zu verlassen. Eine Methode besteht darin, den Z-Score zu verwenden, ein Maß dafür, um wie viele Standardabweichungen ein Wert vom Mittelwert abweicht. Zeilen mit Z-Scores, die einen vordefinierten Schwellenwert überschreiten, können als Ausreißer betrachtet werden.

Verwendung von sciPy.stats.zscore

Die sciPy-Bibliothek stellt die Funktion zscore() zur Berechnung von Z bereit -Scores für jede Spalte in einem DataFrame. Hier ist eine elegante Lösung zum Erkennen und Ausschließen von Ausreißern:

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

df = pd.DataFrame({'Vol': [1200, 1220, 1215, 4000, 1210]})

outlier_threshold = 3

# Compute Z-scores for the 'Vol' column
zscores = np.abs(stats.zscore(df['Vol']))

# Create a mask to identify rows with outliers
outlier_mask = zscores > outlier_threshold

# Exclude rows with outliers
df_without_outliers = df[~outlier_mask]

Dieser Ansatz identifiziert effektiv die Ausreißerzeilen und entfernt sie aus dem DataFrame.

Umgang mit mehreren Spalten

Bei mehreren Spalten kann die Ausreißererkennung auf eine bestimmte Spalte oder alle Spalten angewendet werden gleichzeitig:

# Outliers in at least one column
outlier_mask = (np.abs(stats.zscore(df)) < outlier_threshold).all(axis=1)

# Remove rows with outliers in any column
df_without_outliers = df[~outlier_mask]
# Outliers in a specific column ('Vol')
zscores = np.abs(stats.zscore(df['Vol']))
outlier_mask = zscores > outlier_threshold

# Remove rows with outliers in the 'Vol' column
df_without_outliers = df[~outlier_mask]

Durch den Einsatz statistischer Methoden wie Z-Score-Berechnungen ist es möglich, Ausreißer in einem Pandas-DataFrame effizient zu erkennen und auszuschließen, wodurch sauberere und zuverlässigere Daten für die Analyse gewährleistet werden.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Z-Scores Ausreißer aus einem Pandas-DataFrame identifizieren und entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn