TGViewer
Интеллект в коде: Python, AI, Data Science Интеллект в коде: Python, AI, Data Science @ai_in_progress · 125 subscribers
Post #155 40
модуль 30(полезная функция для выбросов в Датафрейме)

def clean_year_dynamic(df, columns, factor=1.5):
q25 = df[columns].quantile(0.25)
q75 = df[columns].quantile(0.75)
iqr = q75 - q25
low = q25 - factor * iqr
high = q75 + factor * iqr
df[columns] = df[columns].clip(lower=low, upper=high)
return df


1️⃣Определение квартилей (25-й и 75-й)
q25 = df[columns].quantile(0.25)
q75 = df[columns].quantile(0.75)

➖Здесь quantile(0.25) находит первый квартиль (Q1), то есть значение, ниже которого находится 25% всех данных.
➖quantile(0.75) находит третий квартиль (Q3), то есть значение, ниже которого находится 75% всех данных.
➖Эти два квартиля помогают определить межквартильный размах (IQR), который является мерой разброса данных.

2️⃣Расчет интерквартильного размаха (IQR)
iqr = q75 - q25

➖IQR (interquartile range) — это разница между третьим квартилем (Q3) и первым квартилем (Q1). Это показывает диапазон значений, в котором находится 50% всех данных (между 25%-й и 75%-й процентилями).
➖IQR используется для выявления выбросов: данные, которые находятся далеко от этого диапазона, считаются выбросами.

3️⃣Определение границ для выбросов
low = q25 - 1.5 * iqr
high = q75 + 1.5 * iqr

Теперь мы вычисляем границы для выбросов:
➖Нижняя граница (low): все значения ниже этой границы считаются выбросами.
➖Верхняя граница (high): все значения выше этой границы считаются выбросами.

Границы определяются как
➖Q1−1.5×IQR (для нижней границы)
➖Q3+1.5×IQR (для верхней границы)

Величина 1.5 является стандартным множителем для IQR, который обычно используется для определения выбросов.

4️⃣Обрезка данных (Clip)
df[columns] = df[columns].clip(lower=low, upper=high)

➖Метод clip используется для ограничения значений в пределах заданных границ. Все значения ниже low заменяются на low, а все значения выше high заменяются на high.
➖Это означает, что значения, которые ранее считались выбросами (как меньше нижней границы или больше верхней), будут заменены на допустимые значения (на минимальное или максимальное значение из допустимого диапазона).

5️⃣Возврат очищенного DataFrame
return df

➖Функция возвращает DataFrame, где выбросы были заменены на допустимые значения (или обрезаны).

Пример
Предположим, что у нас есть следующий набор данных:
df = pd.DataFrame({'year': [2000, 2001, 2005, 2025, 3000]})

После применения этой функции, если для столбца year квартильные значения будут такими:
Q1=2001
Q3=2025
IQR=2025−2001=24
Нижняя граница = 2001−1.5×24=1953
Верхняя граница = 2025+1.5×24=2073
Значение 3000 будет заменено на 2073, так как оно выходит за пределы верхней границы.
  • 🔥 3
  • 🤔 1
  • 😱 1
More from @ai_in_progress
  1. Mar 4, 2026Seedance 2.0 теперь стоит копейки. Официальные цены API вышли сегодня! ByteDance только чт…
  2. Mar 2, 2026🔥ГЛАВНЫЕ НОВОСТИ ИИ ЗА СЕГОДНЯ ➖Grok Imagine взорвал всех Новая фича Расширение от кадра…
  3. Mar 1, 2026Seedance 2.0 - модель, о которой сейчас говорят почти все, кто следит за развитием AI-виде…
  4. Feb 28, 2026Небольшое обновление формата канала📊 Изначально этот канал создавался исключительно для м…
  5. Feb 10, 2026Аналитический пайплайн: двигатель, который превращает данные в решения Вы слышали модное «…
  6. Feb 7, 2026С возвращением в мир данных! 🌐 Ваш канал по аналитике снова в активной фазе. Перерыв окон…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →