ホームページ >バックエンド開発 >Python チュートリアル >Z スコアを使用して Pandas DataFrame から外れ値を特定して削除するにはどうすればよいですか?

Z スコアを使用して Pandas DataFrame から外れ値を特定して削除するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-30 12:39:14632ブラウズ

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

pandas DataFrame での外れ値の特定と除外

複数の列を持つ pandas DataFrame では、特定の列の値に基づいて外れ値を特定し、除外することができます。データの精度と信頼性を向上させます。外れ値、つまりデータの大部分から大幅に逸脱した極端な値は、分析結果を歪め、誤った結論につながる可能性があります。

外れ値を効果的にフィルタリングするには、統計手法に依存する堅牢なアプローチが必要です。 1 つの方法には、値が平均からどれだけ標準偏差があるかを表す Z スコアを使用することが含まれます。事前定義されたしきい値を超える Z スコアを持つ行は、外れ値と見なすことができます。

sciPy.stats.zscore の使用

sciPy ライブラリには、Z を計算するための zscore() 関数が用意されています。 -DataFrame 内の各列のスコア。外れ値を検出して除外するための洗練されたソリューションを次に示します。

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]

このアプローチでは、外れ値の行を効果的に特定し、DataFrame から削除します。

複数の列の処理

複数の列の場合、外れ値検出は特定の列またはすべての列に適用できます同時に:

# 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]

Z スコア計算などの統計手法を採用することで、pandas DataFrame で外れ値を効率的に検出して除外し、よりクリーンで信頼性の高い分析データを確保できます。

以上がZ スコアを使用して Pandas DataFrame から外れ値を特定して削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。