0

我正在尝试使用 IQR(四分位距)方法从我的数据中删除异常值。我有以下分布df_particles我的分布),我想删除异常值。我使用以下代码来实现这一点 -

    Q1_df = df_particles.quantile(0.25) #lower quartile
    Q3_df = df_particles.quantile(0.75) #upper quartile
    IQR_df = Q3_df - Q1_df              #interquartile range

    result = df_particles[~((df_particles > (Q3_df+(1.5*IQR_df)) |
                            (df_particles < (Q1_df-(1.5*IQR_df))).any(axis=1)]

    f, ax = plt.subplots(figsize=(12,8))
    sns.boxplot(data = result, orient = 'h')

但是,当我查看 的分布时result,我得到了这个。我预计不会有异常值。

我的问题是,为什么没有删除所有异常值?

有关数据的附加信息 - info

4

0 回答 0