Обнаружение выбросов в df - PullRequest
0 голосов
/ 27 июня 2018

У меня есть числовой набор данных с несколькими столбцами и сотнями строк, выглядит примерно так:

a   |  b  |  c  |  d
1   |  3  |  .3 |  26
.02 | 32  |  5  |  2.6

Я пытаюсь обнаружить выбросы, используя std, я нашел этот код:

df.a[((df.a - df.a.mean()) / df.a.std()).abs() > 2]

Что делает то, что я хочу для одного столбца, я хотел бы иметь возможность сделать это для всего df в цикле, может быть? Каждый столбец имеет разные значения mean и std. Это может быть что-то простое, но я новичок во всем этом. Если возможно отобразить выбросы в df как значения и в других ячейках (без выбросов) Nan или 0?

Большое спасибо заранее.

1 Ответ

0 голосов
/ 27 июня 2018

Попробуйте код ниже:

for col in df.columns:
    df[col] = df[col][((df[col] - df[col].mean()) / df.[col].std()).abs() > 2]
...