lab_2 #2
@ -206,12 +206,43 @@
|
||||
"print(data.columns)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
"source": [
|
||||
"numeric_columns = ['est_diameter_min', 'est_diameter_max', 'relative_velocity', 'miss_distance', 'absolute_magnitude']\n",
|
||||
"for column in numeric_columns:\n",
|
||||
" if pd.api.types.is_numeric_dtype(data[column]): # Проверяем, является ли колонка числовой\n",
|
||||
" q1 = data[column].quantile(0.25) # Находим 1-й квартиль (Q1)\n",
|
||||
" q3 = data[column].quantile(0.75) # Находим 3-й квартиль (Q3)\n",
|
||||
" iqr = q3 - q1 # Вычисляем межквартильный размах (IQR)\n",
|
||||
"\n",
|
||||
" # Определяем границы для выбросов\n",
|
||||
" lower_bound = q1 - 1.5 * iqr # Нижняя граница\n",
|
||||
" upper_bound = q3 + 1.5 * iqr # Верхняя граница\n",
|
||||
"\n",
|
||||
" # Подсчитываем количество выбросов\n",
|
||||
" outliers = data[(data[column] < lower_bound) | (data[column] > upper_bound)]\n",
|
||||
" outlier_count = outliers.shape[0]\n",
|
||||
"\n",
|
||||
" # Устраняем выбросы: заменяем значения ниже нижней границы на саму нижнюю границу, а выше верхней — на верхнюю\n",
|
||||
" data[column] = data[column].apply(lambda x: lower_bound if x < lower_bound else upper_bound if x > upper_bound else x)\n",
|
||||
"\n",
|
||||
" print(f\"Колонка {column}:\")\n",
|
||||
" print(f\" Есть выбросы: {'Да' if outlier_count > 0 else 'Нет'}\")\n",
|
||||
" print(f\" Количество выбросов: {outlier_count}\")\n",
|
||||
" print(f\" Минимальное значение: {data[column].min()}\")\n",
|
||||
" print(f\" Максимальное значение: {data[column].max()}\")\n",
|
||||
" print(f\" 1-й квартиль (Q1): {q1}\")\n",
|
||||
" print(f\" 3-й квартиль (Q3): {q3}\\n\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
|
Loading…
Reference in New Issue
Block a user