Вычислить выбросы с помощью Zscore - PullRequest
1 голос
/ 07 августа 2020

Я хочу сохранить выбросы с помощью метода zcore в моем фрейме данных df1. Правильно ли я делаю то, что я делаю?

Код

df1= df[~(np.abs(df.col1-df.col1.mean()) <= (3*df.col1.std()))]

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Вы также можете использовать pandas.eval и pandas.assign для лучшей читаемости:

import pandas as pd

df['outlier'] = df.assign(z_score = lambda x: (x.col1 - x.col1.mean())/x.col1.std()
              ).eval('z_score > 3')

Выбросы - это точки данных с z-оценкой выше , чем порог, поэтому, если вы хотите outlier столбец, чтобы сказать True для выбросов, используйте > вместо <=.

0 голосов
/ 07 августа 2020
df1= df[~(np.abs(df['col1']-df['col1'].mean()) <= 3*df['col1'].std())]

Рабочий пример:

import numpy as np
import pandas as pd

df = pd.DataFrame({'col1':[1,1,1,1,1,1,1,1,1,1,1,1,1,1,10]})

df1= df[~(np.abs(df['col1']-df['col1'].mean()) <= 3*df['col1'].std())]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...