Как устранить выбросы в датафрейме?


Имеется датафрейм student со стобцом Fedu:
4.0, 1.0, 2.0, 2.0, 3.0 и т.д.
Пытаюсь устранить выбросы:
q3 = student.Fedu.quantile(q = 0.75, interpolation = 'midpoint')
q1 = student.Fedu.quantile(q = 0.25, interpolation = 'midpoint')
IQR = q3 - q1
a = q1 - 1.5*IQR
b = q3 + 1.5*IQR
student.Fedu = student.Fedu.apply(lambda x: x[(x>a) & (x < b)])

Выдает ошибку: TypeError: 'float' object is not subscriptable

Вопрос: как устранить выбросы? Заранее спасибо!


Ответы (1 шт):

Автор решения: Nikolay

Попробуйте так:

student.Fedu = student.Fedu[(student.Fedu>a) & (student.Fedu < b)])

После этого вместо удаленных значений выбросов у вас появятся значения NaN, можно либо удалить строки с данным значением с помощью метода .dropna(axis = 0, inplace = True), либо заполнять данные значения с помощью метода .fillna()

→ Ссылка