Я хочу найти любые выбросы в столбце таблицы данных csv, используя Pandas и Numpy. В настоящее время я могу получить выбросы на стороне более высокого конца, но я не уверен, как получить минимальные выбросы или "более низкие" выбросы, если это имеет смысл.
Вот функция, которую я использую:
def detect_outlier(data_1):
outliers = []
threshold = 3
mean_1 = np.mean(data_1)
std_1 = np.std(data_1)
for y in data_1:
z_score = (y - mean_1) / std_1
if np.abs(z_score) > threshold:
outliers.append(y)
return outliers
Возвращает выбросы с z-значением больше 3 (порог) и работает. Я попытался изменить пороговое значение на -3, чтобы получить выбросы в более низком спектре, но он просто возвращает все значения столбца speci c. Означает ли это, что нет более низких выбросов или я делаю что-то не так? Все вопросы, которые я нахожу, касаются удаления выбросов, но я просто хочу показать любые выбросы.
Кроме того, некоторые из выбросов, использующих функцию, предусмотренную для столбцов, возвращают пустой массив, означает ли это, что для этого указанного столбца c нет выбросов?
Набор данных слишком большой написать здесь, но вот ссылка, если она может помочь ответить на этот вопрос: https://archive.ics.uci.edu/ml/datasets/Absenteeism+at+work