首页 >后端开发 >Python教程 >如何使用标准差检测和排除 Pandas DataFrame 中的异常值?

如何使用标准差检测和排除 Pandas DataFrame 中的异常值?

Barbara Streisand
Barbara Streisand原创
2024-12-11 10:26:16911浏览

How Can I Detect and Exclude Outliers in a Pandas DataFrame Using Standard Deviations?

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn