我想删除每个列的数据框中boxplot找到的异常值。我知道boxplot通过IQR规则查找异常值并将其显示在图表上。我知道如何使用seaborn绘制箱线图,但我不确定如何确定这些异常值实际引用哪些行以及如何删除它们?有功能/方法吗?
根据IQR异常值的基本定义,小于Q1-1.5 * IQR的值和大于Q3 + 1.5 * IQR的值被视为异常值。所以,
Q1 = df['col_name'].quantile(0.25)
Q3 = df['col_name'].quantile(0.75)
IQR = Q3 - Q1
现在,异常值是,
df[(df['col_name'] < Q1-1.5*IQR ) | (df['col_name'] > Q3+1.5*IQR)]['col_name']