ホームページ >バックエンド開発 >Python チュートリアル >Z スコアを使用して Pandas DataFrame から外れ値を特定して削除するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。