gpt4 book ai didi

python - 如何用 Python 中的第 95 和第 5 个百分位数替换异常值?

转载 作者:行者123 更新时间:2023-11-28 21:31:43 25 4
gpt4 key购买 nike

我正在尝试对我的时间序列数据进行离群值处理,我想用第 95 个百分位数替换值 > 第 95 个百分位数,用第 5 个百分位数替换值 < 第 5 个百分位数。我已经准备了一些代码,但我找不到想要的结果。

我正在尝试使用名为 Cut 的子函数创建一个 OutlierTreatment 函数。代码如下

def outliertreatment(df,high_limit,low_limit):
df_temp=df['y'].apply(cut,high_limit,low_limit, extra_kw=1)
return df_temp
def cut(column,high_limit,low_limit):
conds = [column > np.percentile(column, high_limit),
column < np.percentile(column, low_limit)]
choices = [np.percentile(column, high_limit),
np.percentile(column, low_limit)]
return np.select(conds,choices,column)

我希望在 OutlierTreatment 函数中发送数据帧,95 作为 high_limit,5 作为 low_limit。如何达到预期的效果?

最佳答案

我不确定这种方法是否适合处理异常值,但要实现您想要的效果,clip 函数很有用。它将边界外的值分配给边界值。您可以在 documentation 中阅读更多内容.

data=pd.Series(np.random.randn(100))
data.clip(lower=data.quantile(0.05), upper=data.quantile(0.95))

关于python - 如何用 Python 中的第 95 和第 5 个百分位数替换异常值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57593005/

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