首页 > 解决方案 > 使用分位数在多列中检测异常值会返回错误

问题描述

我想将异常值保留在两列中,其值高于和低于四分位数。数据框本身有 10 列。下面是我的代码。但代码的最后一行返回一个KeyError: 0.99.

outliers_cols = df[['ColA', 'ColB']]

low = 0.01
high = 0.99
qtldf = outliers_cols.quantile([low, high])

outliers_df = df[(outliers_cols > qtldf[high]) | (outliers_cols < qtldf[low])]

感谢帮助。

标签: pythonquantile

解决方案


您试图不正确地索引到qtldf数据框中。改用loc

qtldf.loc[high]

推荐阅读