我正在尝试使用 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