使用 Z 分数检测和排除 Pandas DataFrame 中的异常值
从 Pandas DataFrame 中识别和删除异常值对于确保准确性和准确性至关重要数据分析的可靠性。为了实现这一目标,一种常见的方法是利用 Z 分数,它测量数据点与平均值的标准偏差数。
实现这种方法需要使用 scipy.stats.zscore 函数,它计算给定数据数组的 Z 分数。通过将 Z 分数应用于 DataFrame 中的每一列,可以确定哪些行包含与平均值显着不同的值。
例如,排除特定列所在的所有行,例如“ Vol," 包含异常值,可以使用以下表达式:
df[(np.abs(stats.zscore(df["Vol"])) < 3).all(axis=1)]
此表达式计算“Vol”列中每个值的绝对 Z 分数。使用绝对值来忽略偏离平均值的方向。结果是一个布尔掩码,其中 True 表示没有异常值的行。使用此掩码对 DataFrame 进行索引可有效排除具有极端“Vol”值的行。
如果需要考虑多列,可以修改语法以检查任何列中具有异常值的行:
df[(np.abs(stats.zscore(df)) < 3).all(axis=1)]
在这种情况下, (np.abs(stats.zscore(df))
通过利用 Z 分数和提供的表达式,可以直接过滤掉异常数据点,确保数据集干净可靠以便进一步分析。
以上是Z 分数如何帮助识别和删除 Pandas DataFrame 中的异常值?的详细内容。更多信息请关注PHP中文网其他相关文章!