gpt4 book ai didi

python - 从单列中删除异常值

转载 作者:行者123 更新时间:2023-12-01 00:58:48 25 4
gpt4 key购买 nike

我正在从数据集中删除异常值。

我决定从每一列中一一删除异常值。我的列具有不同数量的缺失值。

我使用了这段代码,但它删除了包含异常值的整行,并且由于我的数据中存在许多 NaN 值,我的数据行数急剧减少。

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

然后我决定从每列中删除异常值,并在每列中用 NaN 填充异常值我写了这段代码

def remove_outlier(df_in, col_name, thres=1.5):
q1 = df_in[col_name].quantile(0.25)
q3 = df_in[col_name].quantile(0.75)
iqr = q3-q1 #Interquartile range
fence_low = q1-thres*iqr
fence_high = q3+thres*iqr
mask = (df_in[col_name] > fence_high) & (df_in[col_name] < fence_low)
df_in.loc[mask, col_name] = np.nan
return df_in

但是此代码不会过滤异常值。给出了相同的结果。

这段代码有什么问题?我该如何纠正它?

还有其他优雅的方法来过滤异常值吗?

最佳答案

检查一次状况。怎么可能是&。应该是 |

关于python - 从单列中删除异常值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56001573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com