IQR Outliers: замена выбросов

MediumPython
05:00
Лучше работает на десктопе
PandasIQRoutliersdata-cleaning

Дан список чисел. Найдите выбросы методом IQR и замените их на границы:

- Q1 = 25-й перцентиль, Q3 = 75-й перцентиль
- IQR = Q3 - Q1
- Нижняя граница = Q1 - 1.5 × IQR
- Верхняя граница = Q3 + 1.5 × IQR

Значения за границами → обрезать до границ. Округлить до 2 знаков.

Сигнатура

def clip_outliers(values: list[float]) -> list[float]:

Примеры

clip_outliers([1, 2, 3, 4, 5, 100]) → [1.0, 2.0, 3.0, 4.0, 5.0, 8.5]

Объяснение: Q1=2.25, Q3=4.75, IQR=2.5. Upper=8.5. 100 > 8.5 → 8.50.

Примеры

Пример 1

Вход:
values = [1,2,3,4,5,100]
Выход:[1,2,3,4,5,8.5]

Пример 2

Вход:
values = [10,12,14,11,13,15,50,-20]
Выход:[10,12,14,11,13,15,19.5,5.5]
Консоль
Нажмите Run или Ctrl+Enter для запуска