【问题标题】:Flagging outliers of one column based on another column根据另一列标记一列的异常值
【发布时间】:2021-08-03 14:42:41
【问题描述】:

我有一个如下所示的数据框,其中每个小时分钟都有一个订单。仅显示前六行。

Order Hourminute
120 12.15
150 12.15
7 12.15
20 12.30
200 12.30
23 12.30

我需要帮助在 python 中创建一个名为 outliers_detected 的新列,它根据小时分标记订单异常值,如下所示。这必须在一天中的每一小时分钟内完成,而不仅仅是此处显示的两小时分钟。

Order Hourminute outliers_detected
120 12.15 0
150 12.15 0
7 12.15 1
20 12.30 0
150 12.30 1
23 12.30 0

【问题讨论】:

  • 为什么订购 200 变成 150 ?另外,你能解释一下你是如何定义一个outlier的吗?
  • 这种情况下的异常值是当您使用特定的小时分钟并且订单超出该特定小时分钟的 3 或 4 个标准偏差时

标签: python pandas dataframe data-science outliers


【解决方案1】:

通过Zscore

import numpy as np
from scipy import stats

df['outliers_detected'] = df.groupby('Hourminute').transform(
    lambda x: (np.abs(stats.zscore(x)) > 1).astype(int))

【讨论】:

    猜你喜欢
    • 2015-12-21
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 2022-09-29
    • 2015-07-11
    相关资源
    最近更新 更多