将时间序列数据框中的异常值重置为3 SD

时间:2018-11-21 21:39:58

标签: python dataframe statistics

域:Python和熊猫

我有一个时间序列数据框,其中包含最近10年每天的客户总数。

列为:

  • 日期
  • 总客户

“我的总客户数”列中有异常值。

我想将超出均值的3个标准差之外的离群值重置为以下公式所定义的值。

高于3SD的异常值=平均值+ 3 S.D。

1 个答案:

答案 0 :(得分:1)

您可以使用.clip_upper()方法将“客户”列中的值限制为平均值+ 3 * sd。

m = df['total customers'].mean()
sd = df['total customers'].std()
df['total customers'] = df['total_customers'].clip_upper(m + 3*sd)

这里是documentation for clip_upper