使用標準差檢測並排除Pandas DataFrame 中的離群值
離群值是與Pandas 資料框中其餘資料顯著偏差的數據點分配。識別和排除異常值可以透過消除有偏見或雜訊的觀察來改善數據分析。 Pandas 提供了多種處理異常值的方法,包括使用標準差。
要排除值與平均值超過某一標準差的行,我們可以使用 scipy.stats.zscore 函數。此函數計算每個數據點的 Z 分數,表示其偏離平均值的標準差數。
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]
此方法專門偵測並排除「Vol」欄位中的異常值。為了獲得更大的靈活性,我們可以同時將此過濾器應用於多個列:
# 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)]
透過調整閾值(本例中為 3),我們可以控制異常值排除的等級。較小的閾值將導致更保守的異常值檢測,而較大的閾值將排除更多潛在的異常值。
使用這種方法,我們可以有效地識別和刪除可能扭曲 Pandas DataFrame 分析的異常值。
以上是如何使用標準差檢測和排除 Pandas DataFrame 中的異常值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!