使用标准差检测并排除 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中文网其他相关文章!