我有下面的函数可以删除异常值,但我想用同一列中的平均值替换它们
def remove_outlier(df_in, col_name):
q1 = df_in[col_name].quantile(0.25)
q3 = df_in[col_name].quantile(0.75)
iqr = q3-q1 #Interquartile range
fence_low = q1-1.5*iqr
fence_high = q3+1.5*iqr
df_out = df_in.loc[(df_in[col_name] > fence_low) & (df_in[col_name] < fence_high)]
return df_out
让我们试试这个。根据您的标准确定异常值,然后直接将非异常值记录的列平均值分配给它们
使用一些测试数据:
我们可以检查填充值是否等于所有其他列值的平均值:
相关问题 更多 >
编程相关推荐