【问题标题】:How to find outliers within groups in a dataframe如何在数据框中的组内查找异常值
【发布时间】:2021-07-19 21:43:19
【问题描述】:

我有一个如下所示的 df:

Group. Score.
red 34
blue 42
green 1000
green 34
blue 34
red 42

我想在此添加一列,指定该值是否为异常值。如果没有组,那么我会使用类似的东西:

df['outliers'] = df[df[col] > df[col].mean() + 3 * df[col].std()]

但是我将如何做到这一点,使其在组内?

【问题讨论】:

标签: python pandas statistics outliers


【解决方案1】:

你可以使用GroupBy.transform:

df["is_outlier"] = df.groupby("Group.").transform(lambda x: (x - x.mean()).abs() > 3*x.std())

在每个组中,我们取元素与组均值的距离,看看它的绝对值是否超过组标准的 3 倍。

【讨论】:

    猜你喜欢
    • 2020-02-16
    • 1970-01-01
    • 2015-05-17
    • 2015-03-13
    • 2017-03-12
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    相关资源
    最近更新 更多