{
"cells": [
{
"cell_type": "markdown",
"id": "74e95b6f-3419-4dde-947e-81283780b341",
"metadata": {},
"source": [
"# Лабораторная работа 1"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "6671a5aa-f0db-4abd-89f8-cb185105353a",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd # Загружаем модуль pandas"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "c8396594-e4dc-4b28-8a9c-8e32bf169c41",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ph | \n",
" Hardness | \n",
" Solids | \n",
" Chloramines | \n",
" Sulfate | \n",
" Conductivity | \n",
" Organic carbon | \n",
" Trihalomethanes | \n",
" Turbidity | \n",
" Potability | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" NaN | \n",
" 204.890455 | \n",
" 20791.318981 | \n",
" 7.300212 | \n",
" 368.516441 | \n",
" 564.308654 | \n",
" 10.379783 | \n",
" 86.990970 | \n",
" 2.963135 | \n",
" 0 | \n",
"
\n",
" \n",
" | 1 | \n",
" 3.716080 | \n",
" 129.422921 | \n",
" 18630.057858 | \n",
" 6.635246 | \n",
" NaN | \n",
" 592.885359 | \n",
" 15.180013 | \n",
" 56.329076 | \n",
" 4.500656 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2 | \n",
" 8.099124 | \n",
" 224.236259 | \n",
" 19909.541732 | \n",
" 9.275884 | \n",
" NaN | \n",
" 418.606213 | \n",
" 16.868637 | \n",
" 66.420093 | \n",
" 3.055934 | \n",
" 0 | \n",
"
\n",
" \n",
" | 3 | \n",
" 8.316766 | \n",
" 214.373394 | \n",
" 22018.417441 | \n",
" 8.059332 | \n",
" 356.886136 | \n",
" 363.266516 | \n",
" 18.436524 | \n",
" 100.341674 | \n",
" 4.628771 | \n",
" 0 | \n",
"
\n",
" \n",
" | 4 | \n",
" 9.092223 | \n",
" 181.101509 | \n",
" 17978.986339 | \n",
" 6.546600 | \n",
" 310.135738 | \n",
" 398.410813 | \n",
" 11.558279 | \n",
" 31.997993 | \n",
" 4.075075 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ph Hardness Solids Chloramines Sulfate Conductivity \\\n",
"0 NaN 204.890455 20791.318981 7.300212 368.516441 564.308654 \n",
"1 3.716080 129.422921 18630.057858 6.635246 NaN 592.885359 \n",
"2 8.099124 224.236259 19909.541732 9.275884 NaN 418.606213 \n",
"3 8.316766 214.373394 22018.417441 8.059332 356.886136 363.266516 \n",
"4 9.092223 181.101509 17978.986339 6.546600 310.135738 398.410813 \n",
"\n",
" Organic carbon Trihalomethanes Turbidity Potability \n",
"0 10.379783 86.990970 2.963135 0 \n",
"1 15.180013 56.329076 4.500656 0 \n",
"2 16.868637 66.420093 3.055934 0 \n",
"3 18.436524 100.341674 4.628771 0 \n",
"4 11.558279 31.997993 4.075075 0 "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.read_csv('water_potability.csv') # С помощью метода read_csv загружаем файл wine_base.csv и записываем данные в data\n",
"data.head() # С помощью метода head выводим первые 5 строк нашего ДатаФрейма"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "6ad6f05e-a68e-46c0-b570-d43d5025d3f3",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ph | \n",
" Hardness | \n",
" Solids | \n",
" Chloramines | \n",
" Sulfate | \n",
" Conductivity | \n",
" Organic carbon | \n",
" Trihalomethanes | \n",
" Turbidity | \n",
" Potability | \n",
"
\n",
" \n",
" \n",
" \n",
" | 3271 | \n",
" 4.668102 | \n",
" 193.681735 | \n",
" 47580.991603 | \n",
" 7.166639 | \n",
" 359.948574 | \n",
" 526.424171 | \n",
" 13.894419 | \n",
" 66.687695 | \n",
" 4.435821 | \n",
" 1 | \n",
"
\n",
" \n",
" | 3272 | \n",
" 7.808856 | \n",
" 193.553212 | \n",
" 17329.802160 | \n",
" 8.061362 | \n",
" NaN | \n",
" 392.449580 | \n",
" 19.903225 | \n",
" NaN | \n",
" 2.798243 | \n",
" 1 | \n",
"
\n",
" \n",
" | 3273 | \n",
" 9.419510 | \n",
" 175.762646 | \n",
" 33155.578218 | \n",
" 7.350233 | \n",
" NaN | \n",
" 432.044783 | \n",
" 11.039070 | \n",
" 69.845400 | \n",
" 3.298875 | \n",
" 1 | \n",
"
\n",
" \n",
" | 3274 | \n",
" 5.126763 | \n",
" 230.603758 | \n",
" 11983.869376 | \n",
" 6.303357 | \n",
" NaN | \n",
" 402.883113 | \n",
" 11.168946 | \n",
" 77.488213 | \n",
" 4.708658 | \n",
" 1 | \n",
"
\n",
" \n",
" | 3275 | \n",
" 7.874671 | \n",
" 195.102299 | \n",
" 17404.177061 | \n",
" 7.509306 | \n",
" NaN | \n",
" 327.459760 | \n",
" 16.140368 | \n",
" 78.698446 | \n",
" 2.309149 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ph Hardness Solids Chloramines Sulfate \\\n",
"3271 4.668102 193.681735 47580.991603 7.166639 359.948574 \n",
"3272 7.808856 193.553212 17329.802160 8.061362 NaN \n",
"3273 9.419510 175.762646 33155.578218 7.350233 NaN \n",
"3274 5.126763 230.603758 11983.869376 6.303357 NaN \n",
"3275 7.874671 195.102299 17404.177061 7.509306 NaN \n",
"\n",
" Conductivity Organic carbon Trihalomethanes Turbidity Potability \n",
"3271 526.424171 13.894419 66.687695 4.435821 1 \n",
"3272 392.449580 19.903225 NaN 2.798243 1 \n",
"3273 432.044783 11.039070 69.845400 3.298875 1 \n",
"3274 402.883113 11.168946 77.488213 4.708658 1 \n",
"3275 327.459760 16.140368 78.698446 2.309149 1 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.tail()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "4d32d829-d22f-4841-b1f9-b17fc8243a2f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3276, 10)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.shape # Параметр .shape показывает размерность нашего датафрейма"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "15e25306-3adf-4105-9287-b20e1f2d13e1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"32760"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.size # Параметр .size (так же как и в numpy-массивах) показывает количество элементов в нашем датафрейме"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "7ff6ca24-ceda-4e88-9ad5-62acab824077",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"ph 2785\n",
"Hardness 3276\n",
"Solids 3276\n",
"Chloramines 3276\n",
"Sulfate 2495\n",
"Conductivity 3276\n",
"Organic carbon 3276\n",
"Trihalomethanes 3114\n",
"Turbidity 3276\n",
"Potability 3276\n",
"dtype: int64"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.count() # Метод count считает сколько всего непустых записей в каждом столбце"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "fed012f7-499a-449b-bae9-0ed353fe0f45",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"RangeIndex: 3276 entries, 0 to 3275\n",
"Data columns (total 10 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 ph 2785 non-null float64\n",
" 1 Hardness 3276 non-null float64\n",
" 2 Solids 3276 non-null float64\n",
" 3 Chloramines 3276 non-null float64\n",
" 4 Sulfate 2495 non-null float64\n",
" 5 Conductivity 3276 non-null float64\n",
" 6 Organic carbon 3276 non-null float64\n",
" 7 Trihalomethanes 3114 non-null float64\n",
" 8 Turbidity 3276 non-null float64\n",
" 9 Potability 3276 non-null int64 \n",
"dtypes: float64(9), int64(1)\n",
"memory usage: 256.1 KB\n"
]
}
],
"source": [
"data.info() # Метод .info() показывает тип каждого столбца и занимаемую память"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "71c60116-ccf6-47fa-a20f-fb941717cd33",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"ph float64\n",
"Hardness float64\n",
"Solids float64\n",
"Chloramines float64\n",
"Sulfate float64\n",
"Conductivity float64\n",
"Organic carbon float64\n",
"Trihalomethanes float64\n",
"Turbidity float64\n",
"Potability int64\n",
"dtype: object"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.dtypes # Параметр .dtypes показывает просто тип каждого столбца"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ed9d0216-3e60-4aac-a05b-ee2649c07d9b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ph | \n",
" Hardness | \n",
" Solids | \n",
" Chloramines | \n",
" Sulfate | \n",
" Conductivity | \n",
" Organic carbon | \n",
" Trihalomethanes | \n",
" Turbidity | \n",
" Potability | \n",
"
\n",
" \n",
" \n",
" \n",
" | count | \n",
" 2785.000000 | \n",
" 3276.000000 | \n",
" 3276.000000 | \n",
" 3276.000000 | \n",
" 2495.000000 | \n",
" 3276.000000 | \n",
" 3276.000000 | \n",
" 3114.000000 | \n",
" 3276.000000 | \n",
" 3276.000000 | \n",
"
\n",
" \n",
" | mean | \n",
" 7.080795 | \n",
" 196.369496 | \n",
" 22014.092526 | \n",
" 7.122277 | \n",
" 333.775777 | \n",
" 426.205111 | \n",
" 14.284970 | \n",
" 66.396293 | \n",
" 3.966786 | \n",
" 0.390110 | \n",
"
\n",
" \n",
" | std | \n",
" 1.594320 | \n",
" 32.879761 | \n",
" 8768.570828 | \n",
" 1.583085 | \n",
" 41.416840 | \n",
" 80.824064 | \n",
" 3.308162 | \n",
" 16.175008 | \n",
" 0.780382 | \n",
" 0.487849 | \n",
"
\n",
" \n",
" | min | \n",
" 0.000000 | \n",
" 47.432000 | \n",
" 320.942611 | \n",
" 0.352000 | \n",
" 129.000000 | \n",
" 181.483754 | \n",
" 2.200000 | \n",
" 0.738000 | \n",
" 1.450000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" | 25% | \n",
" 6.093092 | \n",
" 176.850538 | \n",
" 15666.690297 | \n",
" 6.127421 | \n",
" 307.699498 | \n",
" 365.734414 | \n",
" 12.065801 | \n",
" 55.844536 | \n",
" 3.439711 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" | 50% | \n",
" 7.036752 | \n",
" 196.967627 | \n",
" 20927.833607 | \n",
" 7.130299 | \n",
" 333.073546 | \n",
" 421.884968 | \n",
" 14.218338 | \n",
" 66.622485 | \n",
" 3.955028 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" | 75% | \n",
" 8.062066 | \n",
" 216.667456 | \n",
" 27332.762127 | \n",
" 8.114887 | \n",
" 359.950170 | \n",
" 481.792304 | \n",
" 16.557652 | \n",
" 77.337473 | \n",
" 4.500320 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" | max | \n",
" 14.000000 | \n",
" 323.124000 | \n",
" 61227.196008 | \n",
" 13.127000 | \n",
" 481.030642 | \n",
" 753.342620 | \n",
" 28.300000 | \n",
" 124.000000 | \n",
" 6.739000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ph Hardness Solids Chloramines Sulfate \\\n",
"count 2785.000000 3276.000000 3276.000000 3276.000000 2495.000000 \n",
"mean 7.080795 196.369496 22014.092526 7.122277 333.775777 \n",
"std 1.594320 32.879761 8768.570828 1.583085 41.416840 \n",
"min 0.000000 47.432000 320.942611 0.352000 129.000000 \n",
"25% 6.093092 176.850538 15666.690297 6.127421 307.699498 \n",
"50% 7.036752 196.967627 20927.833607 7.130299 333.073546 \n",
"75% 8.062066 216.667456 27332.762127 8.114887 359.950170 \n",
"max 14.000000 323.124000 61227.196008 13.127000 481.030642 \n",
"\n",
" Conductivity Organic carbon Trihalomethanes Turbidity Potability \n",
"count 3276.000000 3276.000000 3114.000000 3276.000000 3276.000000 \n",
"mean 426.205111 14.284970 66.396293 3.966786 0.390110 \n",
"std 80.824064 3.308162 16.175008 0.780382 0.487849 \n",
"min 181.483754 2.200000 0.738000 1.450000 0.000000 \n",
"25% 365.734414 12.065801 55.844536 3.439711 0.000000 \n",
"50% 421.884968 14.218338 66.622485 3.955028 0.000000 \n",
"75% 481.792304 16.557652 77.337473 4.500320 1.000000 \n",
"max 753.342620 28.300000 124.000000 6.739000 1.000000 "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.describe() # Отобразим описательные статистики нашего датафрейма (только числовые данные)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "4682e9ad-ec28-4bdf-8be5-d1d0b0643de8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ph | \n",
" Hardness | \n",
" Solids | \n",
" Chloramines | \n",
" Sulfate | \n",
" Conductivity | \n",
" Organic carbon | \n",
" Trihalomethanes | \n",
" Turbidity | \n",
" Potability | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" True | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
" | 1 | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
" | 2 | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
" | 3 | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
" | 4 | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ph Hardness Solids Chloramines Sulfate Conductivity \\\n",
"0 True False False False False False \n",
"1 False False False False True False \n",
"2 False False False False True False \n",
"3 False False False False False False \n",
"4 False False False False False False \n",
"\n",
" Organic carbon Trihalomethanes Turbidity Potability \n",
"0 False False False False \n",
"1 False False False False \n",
"2 False False False False \n",
"3 False False False False \n",
"4 False False False False "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.isna().head() # Метод .isna() вместо каждого значения подставит True (значение NaN) или False (действительное значение)"
]
},
{
"cell_type": "markdown",
"id": "17eecd3a-51a0-4e69-add3-781cd51be836",
"metadata": {},
"source": [
"___\n",
"№2"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "42d0d6d1-e191-4483-9175-2adeed093b3d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"ph 491\n",
"Hardness 0\n",
"Solids 0\n",
"Chloramines 0\n",
"Sulfate 781\n",
"Conductivity 0\n",
"Organic carbon 0\n",
"Trihalomethanes 162\n",
"Turbidity 0\n",
"Potability 0\n",
"dtype: int64"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.isna().sum() # Подсчитаем количество пропусков в каждом столбце с помощью метода .sum()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "b80fab70-d390-4118-9c21-cf0b22bd169e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"ph 0.149878\n",
"Hardness 0.000000\n",
"Solids 0.000000\n",
"Chloramines 0.000000\n",
"Sulfate 0.238400\n",
"Conductivity 0.000000\n",
"Organic carbon 0.000000\n",
"Trihalomethanes 0.049451\n",
"Turbidity 0.000000\n",
"Potability 0.000000\n",
"dtype: float64"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"round(data.isna().sum() / data.shape[0], 6) # часть которую составляют пропуски от общего количества элементов"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "699915ac-adcf-4868-87aa-69ae89f95e01",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1434\n",
"4.4%\n"
]
}
],
"source": [
"proc = data.isna().sum().sum()\n",
"print(proc)\n",
"proc = data.isna().sum().sum() / data.size\n",
"print(round(100*proc,1), '%', sep='')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "b9ff4f68-a533-42a4-bfc2-72c2bc6cd8c1",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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WhxwwAGr/J4999wzjj322KzjIp+urq742c9+ttKvrwnXoIH+DHSWFZ2zP/vZz2LrrbeOIUOGuF4xaFXd78pe07yHNM+iRYuiq6sr5syZ0+6h9LMmPBOsKQbzzD2Quv/7XHTRRbHBBhu0exi0WZF71kD3weWvkXU/96mfIufM8tesHNftJhNEwGqysouNmx918PDDD8eHP/zhGDNmTKy99tqx+eabR29vb8yePXtQP++ss86Kiy66aPUOkkotWbIkPvrRj8b48eNj7bXXji233DL222+/uOaaa9o9tNXmoYcein333bfdw2A1Wd3XsYiID37wg/H2t789HnzwwTj11FMLfY+Qtb6acl1b/oV2qbLXtFtvvTU+8IEPtD4Wzq7agw8+GO973/ti9OjRMWzYsBg7dmwcc8wx8eijj7Z7aC1bbrllPPTQQ/GKV7yi3UOhgK6urlX+7zOf+cwLvue4445b465ZZQhI13yDOa9Xl7L3wV133TUeeuihWH/99SNC6LWmmTZtWuu8GjZsWGy99dZxyimnxHPPPTfg9+b8tz7ooIPinnvuWenXl58r8e7Q39B2DwBYtWeeeSaGDRvW7mGwhnvb294WzzzzTHz3u9+N8ePHx1//+te45pprBv1yvfRhjjXTokWLYrfddosNNtggzjjjjJg8eXI8++yzMXPmzDjyyCPj7rvvrmQcua9vm2++ebafTfVW93XsySefjL/97W/R29sbo0ePXs2jpWp1ua7lVPaatummm2YaSfPce++9scsuu8TEiRPjkksuiZe+9KXxhz/8IY4//vi46qqr4qabboqNNtpohd9b5bP6kCFDandve/bZZ9s9hNp66KGHWv//0ksvjU996lMxf/781ud6enpa/z+lFM8//3z09PT0+zzUTZnzuogy19Cy179hw4bV7ppJOfvss09Mnz49nn766bjyyivjyCOPjLXWWitOPPHEto1p+PDhMXz48JV+3VzJqqmIeJH23HPPOOqoo+Koo46K9ddfPzbZZJM4+eSTI6XUOuaf//xnvO9974sRI0bEmDFj4pvf/GYbR0w7Pfroo3HwwQfHS17yklh33XVj8uTJcckll/Q7Zuk5deyxx8Ymm2wSvb29ERFx5ZVXxsSJE2P48OGx1157xaJFi/p939LEd+bMmTFp0qTo6emJffbZp9+DQkTEt7/97Zg0aVKss8468fKXvzzOP//81teeeeaZOOqoo2KLLbaIddZZJ8aOHRunnXZaRPz74fgzn/lMayXq6NGj4+ijj87wt8Tq9vjjj8f1118fX/rSl2KvvfaKsWPHxitf+co48cQT481vfnNERDzwwAOx//77R09PT4wcOTLe8Y53xF//+teV/szlK4D+8Y9/xGGHHRY9PT2xxRZbxFe+8pUXfM/5558fEyZMiHXWWSdGjRoVb3/721f7n5ViPvKRj0RXV1fccsst8ba3vS0mTpwY2267bXz84x+Pm266qXXcI488Em95y1ti3XXXjQkTJsTll1++yp972WWXxbbbbhtrr712jBs37gXnwbhx4+LUU0+Nww47LEaOHNlaqXvCCSfExIkTY911143x48fHySef3G9iY+nq4AsvvDDGjBkTPT098ZGPfCSef/75OP3002PzzTePzTbbLD7/+c/3+33Lrv5dWqr9k5/8JPbaa69Yd911Y8qUKXHjjTf2+57f/va3sfvuu8fw4cNjyy23jKOPPjr+8Y9/tL7uPG6Pga5jK2pX8vjjj0dXV1dce+21L/h51157bYwYMSIiIl73ute1jhvoPj1t2rT4zW9+E2eddVZrhdbS+/Fdd90V++67b/T09MSoUaPi3e9+dzzyyCM5/1pYRpHr2kD3uqXXmu9973sxbty4WH/99eOd73xnPPHEE61jitzvVlR5sMEGG/RbHffnP/85Dj744Nhoo41ivfXWi5133jluvvnmuOiii+Kzn/1szJ07t3WOLf2+ZX/urrvuGieccEK/3/Hwww/HWmutFdddd11E9F95PG7cuIiIeMtb3hJdXV0xbty4WLRoUXR3d8dtt93W7+d87Wtfi7Fjx0ZfX1+hv/smOPLII2PYsGFx9dVXxx577BFjxoyJfffdN375y1/GX/7yl/jkJz/ZOnZl97JvfetbseWWW8a6664bb3nLW+LMM8/stxpz4cKFsf/++8eoUaOip6cn/vM//zN++ctf9hvHuHHj4gtf+MJK3x1XdK37wx/+EG9605ti5MiRMWLEiNh9991j4cKFK/2zrur4W2+9NaZOnRqbbLJJrL/++rHHHnvE7bff3u/7u7q64utf/3q8+c1vjvXWW6/fvXf27Nmx3XbbxTrrrBOvfvWr46677ur3vUWeE1b151/TbL755q3/rb/++tHV1dX6+O67744RI0bEVVddFTvttFOsvfba8dvf/nalFVFf/vKXY4sttoiNN944jjzyyH7PSd/73vdi5513jhEjRsTmm28ehxxySPztb39b5diK/Ft87nOfa13vxo4dG5dffnk8/PDDrevodttt94Lrx6qeo/bcc8+4//7742Mf+1jr+rasVb3HFj03v/3tb6/y2XWge/WPf/zjmDx5cgwfPjw23njj2Hvvvfs9B7Lq8/qCCy6I17zmNf2O/9rXvta6B0X8v/fIz3/+8zF69Oh42cte1vraE088EQcffHCst9568ZKXvCTOO++8fj9r+fvrLbfcEjvssEOss846sfPOO8cdd9zR7/hlu1Nce+218d73vjf+7//+r1/1ximnnLLCKrPtt98+Tj755BfxN8XqsLQKeuzYsfHhD3849t5777j88svjsccei8MOOyw23HDDWHfddWPfffeNBQsWRESs9N86ovj1clX3s4GqLZadK1nRu8N9990XW2+9dXz5y1/u931z5syJrq6u+NOf/vTi/tLqLvGi7LHHHqmnpycdc8wx6e67707f//7307rrrpu++c1vppRSGjt2bNpoo43SeeedlxYsWJBOO+201N3dne6+++42j5zV7T3veU/af//9X/D5X//61yki0mOPPZb+/Oc/pzPOOCPdcccdaeHChenss89OQ4YMSTfffHPr+KXn1PHHH5/uvvvudPfdd6cHHnggrb322unjH/946zwbNWpU6+emlNL06dPTWmutlfbee+906623pt/97ndp0qRJ6ZBDDmn97O9///tpiy22SJdddlm6995702WXXZY22mijdNFFF6WUUjrjjDPSlltuma677rq0aNGidP3116eLL744pZTSjBkz0siRI9OVV16Z7r///nTzzTe3znPq7dlnn009PT3p2GOPTf/6179e8PXnn38+bb/99uk1r3lNuu2229JNN92Udtppp7THHnu0jvn0pz+dpkyZ0vp4+fP9wx/+cBozZkz65S9/me688870pje9KY0YMSIdc8wxKaWUbr311jRkyJB08cUXp0WLFqXbb789nXXWWZn+xKzKo48+mrq6utIXvvCFVR4XEek//uM/0sUXX5wWLFiQjj766NTT05MeffTRlFL/a1tKKd12222pu7s7nXLKKWn+/Plp+vTpafjw4Wn69Omtnzl27Ng0cuTI9OUvfzn96U9/Sn/6059SSimdeuqpafbs2em+++5Ll19+eRo1alT60pe+1Pq+T3/606mnpye9/e1vT3/4wx/S5ZdfnoYNG5Z6e3vTRz/60XT33XenCy+8MEVEuummm/r9GX7605+mlFK67777UkSkl7/85ennP/95mj9/fnr729+exo4dm5599tmUUkp/+tOf0nrrrZe++tWvpnvuuSfNnj077bDDDmnatGkpJedxOw10HVv673vHHXe0PvfYY4+liEi//vWvU0r9z9mnn346zZ8/P0VEuuyyy9JDDz2Unn766QHv048//njaZZdd0hFHHJEeeuih9NBDD6XnnnsuPfbYY2nTTTdNJ554Ypo3b166/fbb09SpU9Nee+1VxV9PxytyXSt6r+vp6Ulvfetb0+9///t03XXXpc033zz9f//f/9c6ZqD7XUr9rz1Lrb/++q3r4RNPPJHGjx+fdt9993T99denBQsWpEsvvTTdcMMN6Z///Gf6xCc+kbbddtvWOfbPf/7zBT/33HPPTWPGjEl9fX2t33HOOef0+9zYsWPTV7/61ZRSSn/7299SRKTp06enhx56KP3tb39LKaU0derU9JGPfKTfWLfbbrv0qU99asC/96YY6Pw54ogj0oYbbtjv73X5e9lvf/vb1N3dnc4444w0f/78dN5556WNNtoorb/++q2fM2fOnHTBBRek3//+9+mee+5JJ510UlpnnXXS/fff3zpmoHfH5a91f/7zn9NGG22U3vrWt6Zbb701zZ8/P1144YUrfdcc6Phrrrkmfe9730vz5s1Lf/zjH9Phhx+eRo0alf7+97+3fkZEpM022yxdeOGFaeHChen+++9vXV8nTZqUrr766tZ/G+PGjUvPPPNMSqn4c0JT352nT5/e73xY+ne23Xbbpauvvjr96U9/So8++ugKn7lHjhyZPvShD6V58+alK664ot98Q0opfec730lXXnllWrhwYbrxxhvTLrvskvbdd98X/K6yz2wbbbRRuuCCC9I999yTPvzhD6eRI0emffbZJ/3oRz9K8+fPTwcccECaNGlS67+NgZ6jHn300fQf//Ef6ZRTTmld35b+3Qz0Hlv03FzVs+tA9+rFixenoUOHpjPPPDPdd9996c4770znnXdeeuKJJ17Ev3yzLX9eL3/+ppTSV7/61TR27NjWx+95z3tST09Peve7353uuuuudNddd6WU/n3OjRgxIp122mlp/vz5rWewq6++uvW9y94Hn3jiibTpppumQw45JN11113piiuuSOPHj+93jVz+2e9rX/taGjlyZOv8e+KJJ9KDDz6Yuru70y233NL6Pbfffnvq6upKCxcuXK1/X5Szojm2N7/5zWnHHXdMb37zm9OkSZPSddddl+bMmZN6e3vT1ltvnZ555pmV/lunVPx6uar72UDn/bLjXtm7w+c///m0zTbb9PuzHX300em1r33t6vsLrClBxIu0xx579Lv5ppTSCSeckCZNmpRS+vfF9F3velfra319fWmzzTZLX//61ysfK3m95z3vSUOGDEnrrbdev/+ts846/R78lvfGN74xfeITn2h9vMcee6Qddtih3zEnnnjiCy5SJ5xwwguCiIhoTeyllNJ5552XRo0a1fp4q622agULS5166qlpl112SSml9NGPfjS97nWv63c+L/WVr3wlTZw4sXXxZc3y4x//OG244YZpnXXWSbvuums68cQT09y5c1NKKV199dVpyJAh6YEHHmgd/4c//CFFROuBbFU31yeeeCINGzYs/ehHP2p9/dFHH03Dhw9vTcxcdtllaeTIkf1eFmiPm2++OUVE+slPfrLK4yIinXTSSa2Pn3zyyRQR6aqrrkopvfCl9pBDDklTp07t9zOOP/74fteusWPHpgMOOGDAMZ5xxhlpp512an386U9/Oq277rr9zp/e3t40bty49Pzzz7c+97KXvSyddtpp/f4MywcR3/72t1tfX3qez5s3L6WU0uGHH54+8IEP9BvL9ddfn7q7u9NTTz3lPG6zVV3HygYRK/r6yqzoPr3spHNK/76Xvv71r+/3uQcffDBFRJo/f/6g/rwUV+S6VvRet/y15vjjj0+vetWrUkrF7ncpDRxEfOMb30gjRoxoTY4tb0UTOcv/3L/97W9p6NCh6brrrmt9fZdddkknnHBC6+Nlg4iVjevSSy9NG264YSvg+93vfpe6urrSfffdt8KxNdFNN920wr+bpc4888wUEemvf/1rSmnF97KDDjoovfGNb+z3uUMPPbTfRMWKbLvttumcc85pfTzQu+Py17oTTzwxvfSlLy38fF72+Oeffz6NGDEiXXHFFa3PRUQ69thj+x239Pr6wx/+sPW5pf9tXHrppSml4s8JTX13XlkQ8bOf/azfcSt65h47dmx67rnnWp878MAD00EHHbTS33XrrbemiGhNvA32mW3Zf4uHHnooRUQ6+eSTW5+78cYbU0S0AoWBnqOW/txlr0tL/24Geo9d3srOzVU9uw50r/7d736XIiItWrRopb+X/gYbRIwaNSo9/fTT/Y4bO3Zs2mefffp97qCDDuo3Sbzstfob3/hG2njjjVvnVkopff3rX19pELGi8S617777pg9/+MOtjz/60Y+mPffcc4A/PbktO+fQ19eXZs2aldZee+10wAEHpIhIs2fPbh37yCOPpOHDh7ee0Vb2b728lV0vV3U/KxNEpLTid4e//OUv/RY7PfPMM2mTTTZpLRJuMq2ZVoNXv/rV/coKd9lll1iwYEE8//zzERGx3Xbbtb62tGxtoFJJ1kx77bVXzJkzp9//vv3tb7e+/vzzz8epp54akydPjo022ih6enpi5syZ8cADD/T7OTvttFO/j+fNmxevetWr+n1ul112ecHvX3fddWOrrbZqfbzFFlu0zrV//OMfsXDhwjj88MNbvUd7enric5/7XKsce9q0aTFnzpx42cteFkcffXRcffXVrZ914IEHxlNPPRXjx4+PI444In76058W2iSIenjb294Wixcvjssvvzz22WefuPbaa2PHHXeMiy66KObNmxdbbrllbLnllq3jt9lmm9hggw1i3rx5A/7shQsXxjPPPNPvHN1oo436ldlOnTo1xo4dG+PHj493v/vd8YMf/CD++c9/rt4/JIWkZVoHDmTZ+9d6660XI0eOXOn9a968ebHbbrv1+9xuu+3W734YEbHzzju/4HsvvfTS2G233WLzzTePnp6eOOmkk15wXRw3blyrlU5ExKhRo2KbbbaJ7u7ufp8b6P667J9piy22iIhofc/cuXPjoosu6neN7O3tjb6+vrjvvvucx222quvY6lL0Pr28uXPnxq9//et+587LX/7yiIhVtkhh9ShyXSt6r1v+WrPss1SR+10Rc+bMiR122GGlew4Usemmm8brX//6+MEPfhAREffdd1/ceOONceihh5b6OQcccEAMGTIkfvrTn0bEv9sN7LXXXv3aaHSKMvfH5e9l8+fPj1e+8pX9Prf8x08++WQcd9xxMWnSpNhggw2ip6cn5s2b94LrS5l3xzlz5sTuu+8ea621VqFxD3T8X//61zjiiCNiwoQJsf7668fIkSPjySeffMEYV3Qvj+j/frL0v42l/30VfU7otHfnlf1dLmvbbbeNIUOGtD5e9roUEfG73/0u9ttvvxgzZkyMGDEi9thjj4iIld67BvNvMWrUqIiImDx58gs+V/Q5alVW9R4bUfzcXNWz60D36ilTpsR//dd/xeTJk+PAAw+Mb33rW/HYY4+tctwMzuTJk1e4L8Tycxy77LLLSt9H582b12qds7LvL+qII46ISy65JP71r3/FM888ExdffHG8733vG9TPYvX6+c9/Hj09PbHOOuvEvvvuGwcddFBMmzYthg4d2u95bOONN+53z1mZotfLVd3PVofRo0fHG9/4xrjwwgsjIuKKK66Ip59+Og488MDV9jvqShBRgeUf9Lq6ujqq52onWW+99WLrrbfu97+XvOQlra+fccYZcdZZZ8UJJ5wQv/71r2POnDnR29sbzzzzzAt+zmCs6Fxb+lL15JNPRsS/+9cuG5Tcddddrd7JO+64Y9x3331x6qmnxlNPPRXveMc7Wv3Pt9xyy5g/f36cf/75MXz48PjIRz4Sr33ta21QtwZZZ511YurUqXHyySfHDTfcENOmTYtPf/rTlfzuESNGxO233x6XXHJJbLHFFvGpT30qpkyZEo8//nglv5//Z8KECdHV1VVo49Yc96/lr29LJ87e8IY3xM9//vO444474pOf/OQLrosrGstgxrfs9yxdRLD0e5588sn44Ac/2O8aOXfu3FiwYEFstdVWzuMaWNl1bGkgtexE4mDuT0Xv08t78sknY7/99nvBYoQFCxbEa1/72tLjoJwy17WBrI7r3rLPX0stez6uaoPDMg499ND48Y9/HM8++2xcfPHFMXny5H6ThEUMGzYsDjvssJg+fXrHTr5svfXW0dXVtcrJrg033LDf5t+DeVY/7rjj4qc//Wl84QtfiOuvvz7mzJkTkydPLnS/W9k5WPZcGuj497znPTFnzpw466yz4oYbbog5c+bExhtvvNreVYrotHfnIn+Xq/o7+cc//hG9vb0xcuTI+MEPfhC33nprK1gc6N5V5vcufWZ6Mc9RZf+My15Hi56bq/q7GuhePWTIkJg1a1ZcddVVsc0228Q555wTL3vZywYMUfh/uru7V3n/WyrnNWQw9ttvv1h77bXjpz/9aVxxxRXx7LPP2geuJpYu9l2wYEE89dRT8d3vfvcF+8sUlfN6ORjvf//744c//GE89dRTMX369DjooINi3XXXrXwcVRNErAY333xzv49vuummmDBhQr9VCxDx7w1v9t9//3jXu94VU6ZMifHjx8c999wz4PdNmjQpbrnlln6fW3ZD2SJGjRoVo0ePjnvvvfcFYclLX/rS1nEjR46Mgw46KL71rW/FpZdeGpdddln87//+b0T8++Vlv/32i7PPPjuuvfbauPHGG+P3v/99qXFQH9tss0384x//iEmTJsWDDz4YDz74YOtrf/zjH+Pxxx+PbbbZZsCfs9VWW8Vaa63V71r42GOPveDcHjp0aOy9995x+umnx5133hmLFi2KX/3qV6vvD0QhG220UfT29sZ55523ws33BjupPmnSpJg9e3a/z82ePTsmTpy4yvvhDTfcEGPHjo1PfvKTsfPOO8eECRPi/vvvH9QYXqwdd9wx/vjHP77gGrn11lu3Vm05j+tl6XVs6QThshtbLruZa1FF7tPDhg3rt2I04t/nzh/+8IcYN27cC86dur1sN1GR69qLvddFFL/fbbrppv3OxQULFvSrntpuu+1izpw5reer5a3oHFuR/fffP/71r3/FL37xi7j44osHrIZYa621Vvhz3//+98cvf/nLOP/88+O5556Lt771rQP+7ibZeOONY+rUqXH++efHU0891e9rS5YsiR/84Adx0EEHrXLi42Uve1nceuut/T63/MezZ8+OadOmxVve8paYPHlybL755q3N7gdru+22i+uvv75w8DrQ8bNnz46jjz463vCGN7Q2Ml52I9+BLPt+svS/jUmTJkXE4J8TWLW77747Hn300fjiF78Yu+++e7z85S8fsIIk179Fkeeoote35b3Yc3Pp+Aa6V3d1dcVuu+0Wn/3sZ+OOO+6IYcOGtSYqGdimm24aS5Ys6RdGlHkeW36O46abbmpdQ5Y3adKkuPPOO+Nf//rXSr9/eSs7/4YOHRrvec97Yvr06TF9+vR45zvfudoWDfDiLF3sO2bMmBg6dGhE/Pvf/rnnnuv3PPboo4/G/PnzW890K/q3LnO9XNX9rKyVnXdveMMbYr311ouvf/3r8Ytf/KJjFoIIIlaDBx54ID7+8Y/H/Pnz45JLLolzzjknjjnmmHYPixqaMGFCzJo1K2644YaYN29efPCDH4y//vWvA37fhz70oViwYEEcf/zxMX/+/Lj44osH1Yris5/9bJx22mlx9tlnxz333BO///3vY/r06XHmmWdGRMSZZ54Zl1xySdx9991xzz33xIwZM2LzzTePDTbYIC666KL4zne+E3fddVfce++98f3vfz+GDx8eY8eOLT0OqvXoo4/G6173uvj+978fd955Z9x3330xY8aMOP3002P//fePvffeOyZPnhyHHnpo3H777XHLLbfEYYcdFnvssUehcvGenp44/PDD4/jjj49f/epXcdddd8W0adP6tcz5+c9/HmeffXbMmTMn7r///vjv//7v6OvrK93OgtXjvPPOi+effz5e+cpXxmWXXRYLFiyIefPmxdlnnz3okuZPfOITcc0118Spp54a99xzT3z3u9+Nc889N4477rhVft+ECRPigQceiB/+8IexcOHCOPvss9v2wnfCCSfEDTfcEEcddVRr5c3//M//xFFHHRURzuN2Gug6Nnz48Hj1q18dX/ziF2PevHnxm9/8Jk466aTSv6fIfXrcuHFx8803x6JFi+KRRx6Jvr6+OPLII+N///d/4+CDD45bb701Fi5cGDNnzoz3vve9g5pwobyBrmsv9l4XUex+FxHxute9Ls4999y444474rbbbosPfehD/VbpHnzwwbH55pvHAQccELNnz4577703Lrvssrjxxhsj4t/n2H333Rdz5syJRx55JJ5++ukVjme99daLAw44IE4++eSYN29eHHzwwasc/7hx4+Kaa66JJUuW9Gs3MmnSpHj1q18dJ5xwQhx88MEdOfly7rnnxtNPPx29vb1x3XXXxYMPPhi/+MUvYurUqfGSl7wkPv/5z6/y+z/60Y/GlVdeGWeeeWYsWLAgvvGNb8RVV13VL7yYMGFC/OQnP2mtEj/kkENe9Er/o446Kv7+97/HO9/5zrjttttiwYIF8b3vfS/mz58/qOMnTJgQ3/ve92LevHlx8803x6GHHlrqfDjllFPimmuuaf23sckmm8QBBxwQEYN/TmDVxowZE8OGDYtzzjkn7r333rj88svj1FNPXeX35Pq3GOg5KuLf16Hrrrsu/vKXv5QKEl7suRkRA96rb7755vjCF74Qt912WzzwwAPxk5/8JB5++OFBTz52oj333DMefvjhOP3002PhwoVx3nnnxVVXXVX4+2fPnh2nn3563HPPPXHeeefFjBkzVjq3dsghh0RXV1ccccQR8cc//jGuvPLK+PKXv7zKnz9u3Lh48skn45prrolHHnmk3yKB97///fGrX/2qoyaE11QTJkyI/fffP4444oj47W9/G3Pnzo13vetd8ZKXvCT233//iFjxv3WZ6+Wq7mdlrejdISJiyJAhMW3atDjxxBNjwoQJg34PX9MIIlaDww47LJ566ql45StfGUceeWQcc8wx8YEPfKDdw6KGTjrppNhxxx2jt7c39txzz9ZL6EDGjBkTl112WfzsZz+LKVOmxAUXXBBf+MIXSv/+97///fHtb387pk+fHpMnT4499tgjLrroolZFxIgRI+L000+PnXfeOf7zP/8zFi1aFFdeeWV0d3fHBhtsEN/61rdit912i+222y5++ctfxhVXXBEbb7xx6XFQrZ6ennjVq14VX/3qV+O1r31tvOIVr4iTTz45jjjiiDj33HOjq6sr/ud//ic23HDDeO1rXxt77713jB8/Pi699NLCv+OMM86I3XffPfbbb7/Ye++94zWveU2/vU422GCD+MlPfhKve93rYtKkSXHBBRfEJZdcEttuu22OPzIDGD9+fNx+++2x1157xSc+8Yl4xSteEVOnTo1rrrkmvv71rw/qZ+64447xox/9KH74wx/GK17xivjUpz4Vp5xySkybNm2V3/fmN785Pvaxj8VRRx0V22+/fdxwww1x8sknD2oML9Z2220Xv/nNb+Kee+6J3XffPXbYYYf41Kc+FaNHj44I53E7DXQdi4i48MIL47nnnouddtopjj322Pjc5z5X+vcUuU8fd9xxMWTIkNhmm21i0003jQceeCBGjx4ds2fPjueffz5e//rXx+TJk+PYY4+NDTbY4AWT1OQx0HVtddzrIga+30VEfOUrX4ktt9wydt999zjkkEPiuOOO61dqP2zYsLj66qtjs802ize84Q0xefLk+OIXv9haify2t70t9tlnn9hrr71i0003jUsuuWSl4zn00ENj7ty5sfvuu8eYMWNWOfavfOUrMWvWrNhyyy1jhx126Pe1ww8/PJ555pmOnXyZMGFC3HbbbTF+/Ph4xzveEVtttVV84AMfiL322ituvPHGAffz2G233eKCCy6IM888M6ZMmRK/+MUv4mMf+1i/3uVnnnlmbLjhhrHrrrvGfvvtF729vbHjjju+qHFvvPHG8atf/SqefPLJ2GOPPWKnnXaKb33rWyvdA2Kg47/zne/EY489FjvuuGO8+93vjqOPPjo222yzwuP54he/GMccc0zstNNOsWTJkrjiiitaK+EH+5zAqm266aZx0UUXxYwZM2KbbbaJL37xiwNOxub6txjoOSri35N7ixYtiq222qpfu7OBvNhzMyIGvFePHDkyrrvuunjDG94QEydOjJNOOim+8pWvxL777lvq93SySZMmxfnnnx/nnXdeTJkyJW655ZZSAdcnPvGJuO2222KHHXaIz33uc3HmmWdGb2/vCo/t6emJK664In7/+9/HDjvsEJ/85CfjS1/60ip//q677hof+tCH4qCDDopNN900Tj/99NbXJkyYELvuumu8/OUvf8H+nNTP9OnTY6eddoo3velNscsuu0RKKa688srW/WxF/9Zlrperup+VtaJ3h6WWPn+9973vHdTPXhN1pTK7cvECe+65Z2y//fbxta99rd1DAQAAKO3UU0+NGTNmxJ133tnuoTTGEUccEXfffXdcf/317R4KAANIKcWECRPiIx/5SHz84x9v93DoENdff33813/9Vzz44IMxatSodg+nEkPbPQAAAACq9+STT8aiRYvi3HPPHVQVEf/Pl7/85Zg6dWqst956cdVVV8V3v/vdOP/889s9LAAG8PDDD8cPf/jDWLJkSUetTKd9nn766Xj44YfjM5/5TBx44IEdE0JECCIAAAA60lFHHRWXXHJJHHDAAR3blml1ueWWW+L000+PJ554IsaPHx9nn312vP/972/3sAAYwGabbRabbLJJfPOb34wNN9yw3cOhA1xyySVx+OGHx/bbbx///d//3e7hVEprJgAAAAAAIBu75wEAAAAAANkIIgAAAAAAgGwEEQAAAAAAQDaCCAAAAAAAIBtBBAAAAAAAkI0gAgAAAAAAyEYQAQAAAAAAZCOIAAAAAAAAsvn/AZn6o2fqIAVKAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt \n",
"import seaborn as sns\n",
"%matplotlib inline\n",
"\n",
"fig, ax = plt.subplots(figsize=(20,12)) # Создаем область под график\n",
"sns_heatmap = sns.heatmap(data.isnull(), yticklabels=False, cbar=False, cmap='viridis') # Визуализируем прпуски\n",
"plt.show() # Отображаем график"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "4fb1d19e-70c9-49fb-b37e-80361238ee72",
"metadata": {},
"outputs": [],
"source": [
"df = data.dropna(axis=0, how='any')"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "9cb7d7cb-84f2-4fdc-bc96-56d8df47eedb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n"
]
}
],
"source": [
"proc = df.isna().sum().sum()\n",
"print(proc)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "4a0ca0d6-67df-4667-ab7b-ad1456a960b3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(2011, 10)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.shape"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "d164c395-6ddf-4c05-be51-103172bdb256",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"12650"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.size - df.size"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "06b9fa93-7ca9-4955-bb65-6d6cfbc75302",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ph | \n",
" Hardness | \n",
" Solids | \n",
" Chloramines | \n",
" Sulfate | \n",
" Conductivity | \n",
" Organic carbon | \n",
" Trihalomethanes | \n",
" Turbidity | \n",
" Potability | \n",
"
\n",
" \n",
" \n",
" \n",
" | count | \n",
" 2785.000000 | \n",
" 3276.000000 | \n",
" 3276.000000 | \n",
" 3276.000000 | \n",
" 2495.000000 | \n",
" 3276.000000 | \n",
" 3276.000000 | \n",
" 3114.000000 | \n",
" 3276.000000 | \n",
" 3276.000000 | \n",
"
\n",
" \n",
" | mean | \n",
" 7.080795 | \n",
" 196.369496 | \n",
" 22014.092526 | \n",
" 7.122277 | \n",
" 333.775777 | \n",
" 426.205111 | \n",
" 14.284970 | \n",
" 66.396293 | \n",
" 3.966786 | \n",
" 0.390110 | \n",
"
\n",
" \n",
" | std | \n",
" 1.594320 | \n",
" 32.879761 | \n",
" 8768.570828 | \n",
" 1.583085 | \n",
" 41.416840 | \n",
" 80.824064 | \n",
" 3.308162 | \n",
" 16.175008 | \n",
" 0.780382 | \n",
" 0.487849 | \n",
"
\n",
" \n",
" | min | \n",
" 0.000000 | \n",
" 47.432000 | \n",
" 320.942611 | \n",
" 0.352000 | \n",
" 129.000000 | \n",
" 181.483754 | \n",
" 2.200000 | \n",
" 0.738000 | \n",
" 1.450000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" | 25% | \n",
" 6.093092 | \n",
" 176.850538 | \n",
" 15666.690297 | \n",
" 6.127421 | \n",
" 307.699498 | \n",
" 365.734414 | \n",
" 12.065801 | \n",
" 55.844536 | \n",
" 3.439711 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" | 50% | \n",
" 7.036752 | \n",
" 196.967627 | \n",
" 20927.833607 | \n",
" 7.130299 | \n",
" 333.073546 | \n",
" 421.884968 | \n",
" 14.218338 | \n",
" 66.622485 | \n",
" 3.955028 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" | 75% | \n",
" 8.062066 | \n",
" 216.667456 | \n",
" 27332.762127 | \n",
" 8.114887 | \n",
" 359.950170 | \n",
" 481.792304 | \n",
" 16.557652 | \n",
" 77.337473 | \n",
" 4.500320 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" | max | \n",
" 14.000000 | \n",
" 323.124000 | \n",
" 61227.196008 | \n",
" 13.127000 | \n",
" 481.030642 | \n",
" 753.342620 | \n",
" 28.300000 | \n",
" 124.000000 | \n",
" 6.739000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ph Hardness Solids Chloramines Sulfate \\\n",
"count 2785.000000 3276.000000 3276.000000 3276.000000 2495.000000 \n",
"mean 7.080795 196.369496 22014.092526 7.122277 333.775777 \n",
"std 1.594320 32.879761 8768.570828 1.583085 41.416840 \n",
"min 0.000000 47.432000 320.942611 0.352000 129.000000 \n",
"25% 6.093092 176.850538 15666.690297 6.127421 307.699498 \n",
"50% 7.036752 196.967627 20927.833607 7.130299 333.073546 \n",
"75% 8.062066 216.667456 27332.762127 8.114887 359.950170 \n",
"max 14.000000 323.124000 61227.196008 13.127000 481.030642 \n",
"\n",
" Conductivity Organic carbon Trihalomethanes Turbidity Potability \n",
"count 3276.000000 3276.000000 3114.000000 3276.000000 3276.000000 \n",
"mean 426.205111 14.284970 66.396293 3.966786 0.390110 \n",
"std 80.824064 3.308162 16.175008 0.780382 0.487849 \n",
"min 181.483754 2.200000 0.738000 1.450000 0.000000 \n",
"25% 365.734414 12.065801 55.844536 3.439711 0.000000 \n",
"50% 421.884968 14.218338 66.622485 3.955028 0.000000 \n",
"75% 481.792304 16.557652 77.337473 4.500320 1.000000 \n",
"max 753.342620 28.300000 124.000000 6.739000 1.000000 "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.describe()"
]
},
{
"cell_type": "markdown",
"id": "cb791d0b-449d-4dea-8db8-12dd126ba327",
"metadata": {},
"source": [
"Наверное откидывать треть значений не самая лучшая идея, поэтому подготовим ещё один датасет заплонив значаения.\n",
"\n",
"ph:\n",
"\n",
"Среднее (7.08) и медиана (7.04) очень близки. Но есть выбросы (минимум 0), лучше использовать медиану.\n",
"\n",
"Sulfate:\n",
"\n",
"Среднее (333.78) и медиана (333.07) тоже близки. Нет явных выбросов → можно заполнить средним.\n",
"\n",
"Trihalomethanes:\n",
"\n",
"Среднее (66.40) и медиана (66.62) похожи. Есть выбросы (min = 0.738, max = 124) → лучше взять медиану."
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "06ca30b3-71c0-47ba-9ac4-8557a44305c4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ph | \n",
" Hardness | \n",
" Solids | \n",
" Chloramines | \n",
" Sulfate | \n",
" Conductivity | \n",
" Organic carbon | \n",
" Trihalomethanes | \n",
" Turbidity | \n",
" Potability | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 7.036752 | \n",
" 204.890455 | \n",
" 20791.318981 | \n",
" 7.300212 | \n",
" 368.516441 | \n",
" 564.308654 | \n",
" 10.379783 | \n",
" 86.990970 | \n",
" 2.963135 | \n",
" 0 | \n",
"
\n",
" \n",
" | 1 | \n",
" 3.716080 | \n",
" 129.422921 | \n",
" 18630.057858 | \n",
" 6.635246 | \n",
" 333.775777 | \n",
" 592.885359 | \n",
" 15.180013 | \n",
" 56.329076 | \n",
" 4.500656 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2 | \n",
" 8.099124 | \n",
" 224.236259 | \n",
" 19909.541732 | \n",
" 9.275884 | \n",
" 333.775777 | \n",
" 418.606213 | \n",
" 16.868637 | \n",
" 66.420093 | \n",
" 3.055934 | \n",
" 0 | \n",
"
\n",
" \n",
" | 3 | \n",
" 8.316766 | \n",
" 214.373394 | \n",
" 22018.417441 | \n",
" 8.059332 | \n",
" 356.886136 | \n",
" 363.266516 | \n",
" 18.436524 | \n",
" 100.341674 | \n",
" 4.628771 | \n",
" 0 | \n",
"
\n",
" \n",
" | 4 | \n",
" 9.092223 | \n",
" 181.101509 | \n",
" 17978.986339 | \n",
" 6.546600 | \n",
" 310.135738 | \n",
" 398.410813 | \n",
" 11.558279 | \n",
" 31.997993 | \n",
" 4.075075 | \n",
" 0 | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 3271 | \n",
" 4.668102 | \n",
" 193.681735 | \n",
" 47580.991603 | \n",
" 7.166639 | \n",
" 359.948574 | \n",
" 526.424171 | \n",
" 13.894419 | \n",
" 66.687695 | \n",
" 4.435821 | \n",
" 1 | \n",
"
\n",
" \n",
" | 3272 | \n",
" 7.808856 | \n",
" 193.553212 | \n",
" 17329.802160 | \n",
" 8.061362 | \n",
" 333.775777 | \n",
" 392.449580 | \n",
" 19.903225 | \n",
" 66.622485 | \n",
" 2.798243 | \n",
" 1 | \n",
"
\n",
" \n",
" | 3273 | \n",
" 9.419510 | \n",
" 175.762646 | \n",
" 33155.578218 | \n",
" 7.350233 | \n",
" 333.775777 | \n",
" 432.044783 | \n",
" 11.039070 | \n",
" 69.845400 | \n",
" 3.298875 | \n",
" 1 | \n",
"
\n",
" \n",
" | 3274 | \n",
" 5.126763 | \n",
" 230.603758 | \n",
" 11983.869376 | \n",
" 6.303357 | \n",
" 333.775777 | \n",
" 402.883113 | \n",
" 11.168946 | \n",
" 77.488213 | \n",
" 4.708658 | \n",
" 1 | \n",
"
\n",
" \n",
" | 3275 | \n",
" 7.874671 | \n",
" 195.102299 | \n",
" 17404.177061 | \n",
" 7.509306 | \n",
" 333.775777 | \n",
" 327.459760 | \n",
" 16.140368 | \n",
" 78.698446 | \n",
" 2.309149 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
3276 rows × 10 columns
\n",
"
"
],
"text/plain": [
" ph Hardness Solids Chloramines Sulfate \\\n",
"0 7.036752 204.890455 20791.318981 7.300212 368.516441 \n",
"1 3.716080 129.422921 18630.057858 6.635246 333.775777 \n",
"2 8.099124 224.236259 19909.541732 9.275884 333.775777 \n",
"3 8.316766 214.373394 22018.417441 8.059332 356.886136 \n",
"4 9.092223 181.101509 17978.986339 6.546600 310.135738 \n",
"... ... ... ... ... ... \n",
"3271 4.668102 193.681735 47580.991603 7.166639 359.948574 \n",
"3272 7.808856 193.553212 17329.802160 8.061362 333.775777 \n",
"3273 9.419510 175.762646 33155.578218 7.350233 333.775777 \n",
"3274 5.126763 230.603758 11983.869376 6.303357 333.775777 \n",
"3275 7.874671 195.102299 17404.177061 7.509306 333.775777 \n",
"\n",
" Conductivity Organic carbon Trihalomethanes Turbidity Potability \n",
"0 564.308654 10.379783 86.990970 2.963135 0 \n",
"1 592.885359 15.180013 56.329076 4.500656 0 \n",
"2 418.606213 16.868637 66.420093 3.055934 0 \n",
"3 363.266516 18.436524 100.341674 4.628771 0 \n",
"4 398.410813 11.558279 31.997993 4.075075 0 \n",
"... ... ... ... ... ... \n",
"3271 526.424171 13.894419 66.687695 4.435821 1 \n",
"3272 392.449580 19.903225 66.622485 2.798243 1 \n",
"3273 432.044783 11.039070 69.845400 3.298875 1 \n",
"3274 402.883113 11.168946 77.488213 4.708658 1 \n",
"3275 327.459760 16.140368 78.698446 2.309149 1 \n",
"\n",
"[3276 rows x 10 columns]"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2 = data.copy(deep=True) # Создадим копию исходного датафрейма, чтобы его не изменять\n",
"# Заполняем NaN значениями в зависимости от их распределения\n",
"df2['ph'] = df2['ph'].fillna(df2['ph'].median()) # Медиана устойчивее к выбросам\n",
"df2['Sulfate'] = df2['Sulfate'].fillna(df2['Sulfate'].mean()) # Среднее, так как нет сильных выбросов\n",
"df2['Trihalomethanes'] = df2['Trihalomethanes'].fillna(df2['Trihalomethanes'].median()) # Медиана, так как есть выбросы\n",
"df2"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "126bf027-765f-4d5c-8c1d-92f6f43edb58",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n"
]
}
],
"source": [
"proc = df.isna().sum().sum()\n",
"print(proc)"
]
},
{
"cell_type": "markdown",
"id": "8763ef2c-f8e7-450c-abf4-215568922bc1",
"metadata": {},
"source": [
"___\n",
"# №3"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "570103c7-bf99-4794-b79f-cd4d299c1ae7",
"metadata": {},
"outputs": [],
"source": [
"import re"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "4e2deea1-6cf2-477e-97c3-4103cef357ad",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"pandas.core.frame.DataFrame"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(df2)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "e1b48a2e-6d3d-4341-9a12-9a46bfe19725",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ph | \n",
" hardness | \n",
" solids | \n",
" chloramines | \n",
" sulfate | \n",
" conductivity | \n",
" organic_carbon | \n",
" trihalomethanes | \n",
" turbidity | \n",
" potability | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 7.036752 | \n",
" 204.890455 | \n",
" 20791.318981 | \n",
" 7.300212 | \n",
" 368.516441 | \n",
" 564.308654 | \n",
" 10.379783 | \n",
" 86.990970 | \n",
" 2.963135 | \n",
" 0 | \n",
"
\n",
" \n",
" | 1 | \n",
" 3.716080 | \n",
" 129.422921 | \n",
" 18630.057858 | \n",
" 6.635246 | \n",
" 333.775777 | \n",
" 592.885359 | \n",
" 15.180013 | \n",
" 56.329076 | \n",
" 4.500656 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ph hardness solids chloramines sulfate conductivity \\\n",
"0 7.036752 204.890455 20791.318981 7.300212 368.516441 564.308654 \n",
"1 3.716080 129.422921 18630.057858 6.635246 333.775777 592.885359 \n",
"\n",
" organic_carbon trihalomethanes turbidity potability \n",
"0 10.379783 86.990970 2.963135 0 \n",
"1 15.180013 56.329076 4.500656 0 "
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2.columns = [\n",
" f\"{re.sub(r'[^a-zA-Z0-9]', '_', col).lower()}\" \n",
" for col in df2.columns\n",
"]\n",
"df2.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "c947a85d-3653-4645-8428-9d0afa34669e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" водородный показатель | \n",
" жесткость | \n",
" твердые частицы | \n",
" хлорамины | \n",
" сульфат | \n",
" проводимость | \n",
" органический углерод | \n",
" тригалометаны | \n",
" мутность | \n",
" пригодность к питью | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 7.036752 | \n",
" 204.890455 | \n",
" 20791.318981 | \n",
" 7.300212 | \n",
" 368.516441 | \n",
" 564.308654 | \n",
" 10.379783 | \n",
" 86.990970 | \n",
" 2.963135 | \n",
" 0 | \n",
"
\n",
" \n",
" | 1 | \n",
" 3.716080 | \n",
" 129.422921 | \n",
" 18630.057858 | \n",
" 6.635246 | \n",
" 333.775777 | \n",
" 592.885359 | \n",
" 15.180013 | \n",
" 56.329076 | \n",
" 4.500656 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" водородный показатель жесткость твердые частицы хлорамины сульфат \\\n",
"0 7.036752 204.890455 20791.318981 7.300212 368.516441 \n",
"1 3.716080 129.422921 18630.057858 6.635246 333.775777 \n",
"\n",
" проводимость органический углерод тригалометаны мутность \\\n",
"0 564.308654 10.379783 86.990970 2.963135 \n",
"1 592.885359 15.180013 56.329076 4.500656 \n",
"\n",
" пригодность к питью \n",
"0 0 \n",
"1 0 "
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df3 = df2.copy(deep=True)\n",
"# Заготовим словарь с переводом колонок\n",
"column_translation = {\n",
" 'ph': 'водородный показатель',\n",
" 'hardness': 'жесткость',\n",
" 'solids': 'твердые частицы',\n",
" 'chloramines': 'хлорамины',\n",
" 'sulfate': 'сульфат',\n",
" 'conductivity': 'проводимость',\n",
" 'organic_carbon': 'органический углерод',\n",
" 'trihalomethanes': 'тригалометаны',\n",
" 'turbidity': 'мутность',\n",
" 'potability': 'пригодность к питью'\n",
"}\n",
"df3.columns = [\n",
" f\"{column_translation.get(col, col)}\" \n",
" for col in df3.columns\n",
"]\n",
"df3.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "8a8424b1-7ba5-49a8-957e-40b48b055ff6",
"metadata": {},
"outputs": [],
"source": [
"# Создаем новый признак: \"Чрезвычайно высокий уровень органического углерода\" (>25)\n",
"df3['высокий уровень органического углерода'] = (df3['органический углерод'] > 25).astype(int)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "de8c1373-78e7-49c8-8401-a2fcf71d4fef",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" водородный показатель | \n",
" жесткость | \n",
" твердые частицы | \n",
" хлорамины | \n",
" сульфат | \n",
" проводимость | \n",
" органический углерод | \n",
" тригалометаны | \n",
" мутность | \n",
" пригодность к питью | \n",
" высокий уровень органического углерода | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1792 | \n",
" 7.036752 | \n",
" 230.430762 | \n",
" 14916.986091 | \n",
" 9.618516 | \n",
" 333.775777 | \n",
" 379.172804 | \n",
" 28.300000 | \n",
" 79.633064 | \n",
" 3.864931 | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
" | 2236 | \n",
" 6.380717 | \n",
" 266.015410 | \n",
" 21250.935634 | \n",
" 4.854335 | \n",
" 357.241027 | \n",
" 358.185473 | \n",
" 27.006707 | \n",
" 59.937785 | \n",
" 4.532020 | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" водородный показатель жесткость твердые частицы хлорамины \\\n",
"1792 7.036752 230.430762 14916.986091 9.618516 \n",
"2236 6.380717 266.015410 21250.935634 4.854335 \n",
"\n",
" сульфат проводимость органический углерод тригалометаны мутность \\\n",
"1792 333.775777 379.172804 28.300000 79.633064 3.864931 \n",
"2236 357.241027 358.185473 27.006707 59.937785 4.532020 \n",
"\n",
" пригодность к питью высокий уровень органического углерода \n",
"1792 0 1 \n",
"2236 0 1 "
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df3[df3['высокий уровень органического углерода'] == 1].head()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "2e441e19-20fb-4274-b777-25fb1727da2d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" водородный показатель | \n",
" жесткость | \n",
" твердые частицы | \n",
" хлорамины | \n",
" сульфат | \n",
" проводимость | \n",
" органический углерод | \n",
" тригалометаны | \n",
" мутность | \n",
" пригодность к питью | \n",
" высокий уровень органического углерода | \n",
"
\n",
" \n",
" \n",
" \n",
" | 2928 | \n",
" 0.975578 | \n",
" 221.204114 | \n",
" 31145.110739 | \n",
" 7.615583 | \n",
" 333.677843 | \n",
" 439.112765 | \n",
" 21.145954 | \n",
" 66.622485 | \n",
" 2.533996 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 3014 | \n",
" 0.000000 | \n",
" 214.846144 | \n",
" 49456.587108 | \n",
" 7.897539 | \n",
" 333.775777 | \n",
" 583.448849 | \n",
" 7.702328 | \n",
" 77.712891 | \n",
" 4.928840 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" водородный показатель жесткость твердые частицы хлорамины \\\n",
"2928 0.975578 221.204114 31145.110739 7.615583 \n",
"3014 0.000000 214.846144 49456.587108 7.897539 \n",
"\n",
" сульфат проводимость органический углерод тригалометаны мутность \\\n",
"2928 333.677843 439.112765 21.145954 66.622485 2.533996 \n",
"3014 333.775777 583.448849 7.702328 77.712891 4.928840 \n",
"\n",
" пригодность к питью высокий уровень органического углерода \n",
"2928 0 0 \n",
"3014 0 0 "
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df3[(df3['водородный показатель'] < 1) & (df3['пригодность к питью'] == 0)].head()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "6b44eb1f-f147-4be4-b887-d0ca82732474",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" водородный показатель | \n",
" жесткость | \n",
" твердые частицы | \n",
" хлорамины | \n",
" сульфат | \n",
" проводимость | \n",
" органический углерод | \n",
" тригалометаны | \n",
" мутность | \n",
" пригодность к питью | \n",
" высокий уровень органического углерода | \n",
"
\n",
" \n",
" \n",
" \n",
" | 263 | \n",
" 13.175402 | \n",
" 47.432000 | \n",
" 19237.949676 | \n",
" 8.907020 | \n",
" 375.147315 | \n",
" 500.245952 | \n",
" 12.083896 | \n",
" 66.622485 | \n",
" 4.106924 | \n",
" 1 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2075 | \n",
" 14.000000 | \n",
" 235.677458 | \n",
" 24008.992040 | \n",
" 5.635029 | \n",
" 381.097711 | \n",
" 460.745267 | \n",
" 13.452538 | \n",
" 72.859468 | \n",
" 3.170994 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2868 | \n",
" 13.541240 | \n",
" 187.606792 | \n",
" 13475.912773 | \n",
" 6.756055 | \n",
" 333.775777 | \n",
" 411.264465 | \n",
" 15.142667 | \n",
" 74.448559 | \n",
" 3.529191 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2895 | \n",
" 13.349889 | \n",
" 152.776455 | \n",
" 18464.900775 | \n",
" 6.717973 | \n",
" 334.864070 | \n",
" 450.846369 | \n",
" 17.192564 | \n",
" 85.883523 | \n",
" 2.531075 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" водородный показатель жесткость твердые частицы хлорамины \\\n",
"263 13.175402 47.432000 19237.949676 8.907020 \n",
"2075 14.000000 235.677458 24008.992040 5.635029 \n",
"2868 13.541240 187.606792 13475.912773 6.756055 \n",
"2895 13.349889 152.776455 18464.900775 6.717973 \n",
"\n",
" сульфат проводимость органический углерод тригалометаны мутность \\\n",
"263 375.147315 500.245952 12.083896 66.622485 4.106924 \n",
"2075 381.097711 460.745267 13.452538 72.859468 3.170994 \n",
"2868 333.775777 411.264465 15.142667 74.448559 3.529191 \n",
"2895 334.864070 450.846369 17.192564 85.883523 2.531075 \n",
"\n",
" пригодность к питью высокий уровень органического углерода \n",
"263 1 0 \n",
"2075 0 0 \n",
"2868 0 0 \n",
"2895 0 0 "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df3[(df3['водородный показатель'] >= 13)].head()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "c749d71b-1f53-4e6a-8f7b-803eef90dbc6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" водородный показатель | \n",
" жесткость | \n",
" твердые частицы | \n",
" хлорамины | \n",
" сульфат | \n",
" проводимость | \n",
" органический углерод | \n",
" тригалометаны | \n",
" мутность | \n",
" пригодность к питью | \n",
" высокий уровень органического углерода | \n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [водородный показатель, жесткость, твердые частицы, хлорамины, сульфат, проводимость, органический углерод, тригалометаны, мутность, пригодность к питью, высокий уровень органического углерода]\n",
"Index: []"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Удаляем явные выбросы в pH\n",
"df3 = df3[(df3['водородный показатель'] > 0) & (df3['водородный показатель'] <= 13)]\n",
"df3[(df3['водородный показатель'] >= 13) | (df3['водородный показатель'] == 0)].head()"
]
},
{
"cell_type": "markdown",
"id": "126a6de3-c893-4211-b496-9f0a0798b413",
"metadata": {},
"source": [
"___\n",
"# №4"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "4913b66c-953f-45bb-8ac3-97ab96a729a0",
"metadata": {},
"outputs": [],
"source": [
"# !pip install scikit-learn"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "cbe19125-f052-4188-9c0a-120a100cc280",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ph | \n",
" hardness | \n",
" solids | \n",
" chloramines | \n",
" sulfate | \n",
" conductivity | \n",
" organic_carbon | \n",
" trihalomethanes | \n",
" turbidity | \n",
" potability | \n",
" turbidity_level | \n",
" turbidity_level_encoded | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 7.036752 | \n",
" 204.890455 | \n",
" 20791.318981 | \n",
" 7.300212 | \n",
" 368.516441 | \n",
" 564.308654 | \n",
" 10.379783 | \n",
" 86.990970 | \n",
" 2.963135 | \n",
" 0 | \n",
" low | \n",
" 1 | \n",
"
\n",
" \n",
" | 1 | \n",
" 3.716080 | \n",
" 129.422921 | \n",
" 18630.057858 | \n",
" 6.635246 | \n",
" 333.775777 | \n",
" 592.885359 | \n",
" 15.180013 | \n",
" 56.329076 | \n",
" 4.500656 | \n",
" 0 | \n",
" high | \n",
" 0 | \n",
"
\n",
" \n",
" | 2 | \n",
" 8.099124 | \n",
" 224.236259 | \n",
" 19909.541732 | \n",
" 9.275884 | \n",
" 333.775777 | \n",
" 418.606213 | \n",
" 16.868637 | \n",
" 66.420093 | \n",
" 3.055934 | \n",
" 0 | \n",
" low | \n",
" 1 | \n",
"
\n",
" \n",
" | 3 | \n",
" 8.316766 | \n",
" 214.373394 | \n",
" 22018.417441 | \n",
" 8.059332 | \n",
" 356.886136 | \n",
" 363.266516 | \n",
" 18.436524 | \n",
" 100.341674 | \n",
" 4.628771 | \n",
" 0 | \n",
" high | \n",
" 0 | \n",
"
\n",
" \n",
" | 4 | \n",
" 9.092223 | \n",
" 181.101509 | \n",
" 17978.986339 | \n",
" 6.546600 | \n",
" 310.135738 | \n",
" 398.410813 | \n",
" 11.558279 | \n",
" 31.997993 | \n",
" 4.075075 | \n",
" 0 | \n",
" high | \n",
" 0 | \n",
"
\n",
" \n",
" | 5 | \n",
" 5.584087 | \n",
" 188.313324 | \n",
" 28748.687739 | \n",
" 7.544869 | \n",
" 326.678363 | \n",
" 280.467916 | \n",
" 8.399735 | \n",
" 54.917862 | \n",
" 2.559708 | \n",
" 0 | \n",
" low | \n",
" 1 | \n",
"
\n",
" \n",
" | 6 | \n",
" 10.223862 | \n",
" 248.071735 | \n",
" 28749.716544 | \n",
" 7.513408 | \n",
" 393.663396 | \n",
" 283.651634 | \n",
" 13.789695 | \n",
" 84.603556 | \n",
" 2.672989 | \n",
" 0 | \n",
" low | \n",
" 1 | \n",
"
\n",
" \n",
" | 7 | \n",
" 8.635849 | \n",
" 203.361523 | \n",
" 13672.091764 | \n",
" 4.563009 | \n",
" 303.309771 | \n",
" 474.607645 | \n",
" 12.363817 | \n",
" 62.798309 | \n",
" 4.401425 | \n",
" 0 | \n",
" high | \n",
" 0 | \n",
"
\n",
" \n",
" | 8 | \n",
" 7.036752 | \n",
" 118.988579 | \n",
" 14285.583854 | \n",
" 7.804174 | \n",
" 268.646941 | \n",
" 389.375566 | \n",
" 12.706049 | \n",
" 53.928846 | \n",
" 3.595017 | \n",
" 0 | \n",
" low | \n",
" 1 | \n",
"
\n",
" \n",
" | 9 | \n",
" 11.180284 | \n",
" 227.231469 | \n",
" 25484.508491 | \n",
" 9.077200 | \n",
" 404.041635 | \n",
" 563.885481 | \n",
" 17.927806 | \n",
" 71.976601 | \n",
" 4.370562 | \n",
" 0 | \n",
" high | \n",
" 0 | \n",
"
\n",
" \n",
" | 10 | \n",
" 7.360640 | \n",
" 165.520797 | \n",
" 32452.614409 | \n",
" 7.550701 | \n",
" 326.624353 | \n",
" 425.383419 | \n",
" 15.586810 | \n",
" 78.740016 | \n",
" 3.662292 | \n",
" 0 | \n",
" low | \n",
" 1 | \n",
"
\n",
" \n",
" | 11 | \n",
" 7.974522 | \n",
" 218.693300 | \n",
" 18767.656682 | \n",
" 8.110385 | \n",
" 333.775777 | \n",
" 364.098230 | \n",
" 14.525746 | \n",
" 76.485911 | \n",
" 4.011718 | \n",
" 0 | \n",
" high | \n",
" 0 | \n",
"
\n",
" \n",
" | 12 | \n",
" 7.119824 | \n",
" 156.704993 | \n",
" 18730.813653 | \n",
" 3.606036 | \n",
" 282.344050 | \n",
" 347.715027 | \n",
" 15.929536 | \n",
" 79.500778 | \n",
" 3.445756 | \n",
" 0 | \n",
" low | \n",
" 1 | \n",
"
\n",
" \n",
" | 13 | \n",
" 7.036752 | \n",
" 150.174923 | \n",
" 27331.361962 | \n",
" 6.838223 | \n",
" 299.415781 | \n",
" 379.761835 | \n",
" 19.370807 | \n",
" 76.509996 | \n",
" 4.413974 | \n",
" 0 | \n",
" high | \n",
" 0 | \n",
"
\n",
" \n",
" | 14 | \n",
" 7.496232 | \n",
" 205.344982 | \n",
" 28388.004887 | \n",
" 5.072558 | \n",
" 333.775777 | \n",
" 444.645352 | \n",
" 13.228311 | \n",
" 70.300213 | \n",
" 4.777382 | \n",
" 0 | \n",
" high | \n",
" 0 | \n",
"
\n",
" \n",
" | 15 | \n",
" 6.347272 | \n",
" 186.732881 | \n",
" 41065.234765 | \n",
" 9.629596 | \n",
" 364.487687 | \n",
" 516.743282 | \n",
" 11.539781 | \n",
" 75.071617 | \n",
" 4.376348 | \n",
" 0 | \n",
" high | \n",
" 0 | \n",
"
\n",
" \n",
" | 16 | \n",
" 7.051786 | \n",
" 211.049406 | \n",
" 30980.600787 | \n",
" 10.094796 | \n",
" 333.775777 | \n",
" 315.141267 | \n",
" 20.397022 | \n",
" 56.651604 | \n",
" 4.268429 | \n",
" 0 | \n",
" high | \n",
" 0 | \n",
"
\n",
" \n",
" | 17 | \n",
" 9.181560 | \n",
" 273.813807 | \n",
" 24041.326280 | \n",
" 6.904990 | \n",
" 398.350517 | \n",
" 477.974642 | \n",
" 13.387341 | \n",
" 71.457362 | \n",
" 4.503661 | \n",
" 0 | \n",
" high | \n",
" 0 | \n",
"
\n",
" \n",
" | 18 | \n",
" 8.975464 | \n",
" 279.357167 | \n",
" 19460.398131 | \n",
" 6.204321 | \n",
" 333.775777 | \n",
" 431.443990 | \n",
" 12.888759 | \n",
" 63.821237 | \n",
" 2.436086 | \n",
" 0 | \n",
" low | \n",
" 1 | \n",
"
\n",
" \n",
" | 19 | \n",
" 7.371050 | \n",
" 214.496610 | \n",
" 25630.320037 | \n",
" 4.432669 | \n",
" 335.754439 | \n",
" 469.914551 | \n",
" 12.509164 | \n",
" 62.797277 | \n",
" 2.560299 | \n",
" 0 | \n",
" low | \n",
" 1 | \n",
"
\n",
" \n",
" | 20 | \n",
" 7.036752 | \n",
" 227.435048 | \n",
" 22305.567414 | \n",
" 10.333918 | \n",
" 333.775777 | \n",
" 554.820086 | \n",
" 16.331693 | \n",
" 45.382815 | \n",
" 4.133423 | \n",
" 0 | \n",
" high | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ph hardness solids chloramines sulfate \\\n",
"0 7.036752 204.890455 20791.318981 7.300212 368.516441 \n",
"1 3.716080 129.422921 18630.057858 6.635246 333.775777 \n",
"2 8.099124 224.236259 19909.541732 9.275884 333.775777 \n",
"3 8.316766 214.373394 22018.417441 8.059332 356.886136 \n",
"4 9.092223 181.101509 17978.986339 6.546600 310.135738 \n",
"5 5.584087 188.313324 28748.687739 7.544869 326.678363 \n",
"6 10.223862 248.071735 28749.716544 7.513408 393.663396 \n",
"7 8.635849 203.361523 13672.091764 4.563009 303.309771 \n",
"8 7.036752 118.988579 14285.583854 7.804174 268.646941 \n",
"9 11.180284 227.231469 25484.508491 9.077200 404.041635 \n",
"10 7.360640 165.520797 32452.614409 7.550701 326.624353 \n",
"11 7.974522 218.693300 18767.656682 8.110385 333.775777 \n",
"12 7.119824 156.704993 18730.813653 3.606036 282.344050 \n",
"13 7.036752 150.174923 27331.361962 6.838223 299.415781 \n",
"14 7.496232 205.344982 28388.004887 5.072558 333.775777 \n",
"15 6.347272 186.732881 41065.234765 9.629596 364.487687 \n",
"16 7.051786 211.049406 30980.600787 10.094796 333.775777 \n",
"17 9.181560 273.813807 24041.326280 6.904990 398.350517 \n",
"18 8.975464 279.357167 19460.398131 6.204321 333.775777 \n",
"19 7.371050 214.496610 25630.320037 4.432669 335.754439 \n",
"20 7.036752 227.435048 22305.567414 10.333918 333.775777 \n",
"\n",
" conductivity organic_carbon trihalomethanes turbidity potability \\\n",
"0 564.308654 10.379783 86.990970 2.963135 0 \n",
"1 592.885359 15.180013 56.329076 4.500656 0 \n",
"2 418.606213 16.868637 66.420093 3.055934 0 \n",
"3 363.266516 18.436524 100.341674 4.628771 0 \n",
"4 398.410813 11.558279 31.997993 4.075075 0 \n",
"5 280.467916 8.399735 54.917862 2.559708 0 \n",
"6 283.651634 13.789695 84.603556 2.672989 0 \n",
"7 474.607645 12.363817 62.798309 4.401425 0 \n",
"8 389.375566 12.706049 53.928846 3.595017 0 \n",
"9 563.885481 17.927806 71.976601 4.370562 0 \n",
"10 425.383419 15.586810 78.740016 3.662292 0 \n",
"11 364.098230 14.525746 76.485911 4.011718 0 \n",
"12 347.715027 15.929536 79.500778 3.445756 0 \n",
"13 379.761835 19.370807 76.509996 4.413974 0 \n",
"14 444.645352 13.228311 70.300213 4.777382 0 \n",
"15 516.743282 11.539781 75.071617 4.376348 0 \n",
"16 315.141267 20.397022 56.651604 4.268429 0 \n",
"17 477.974642 13.387341 71.457362 4.503661 0 \n",
"18 431.443990 12.888759 63.821237 2.436086 0 \n",
"19 469.914551 12.509164 62.797277 2.560299 0 \n",
"20 554.820086 16.331693 45.382815 4.133423 0 \n",
"\n",
" turbidity_level turbidity_level_encoded \n",
"0 low 1 \n",
"1 high 0 \n",
"2 low 1 \n",
"3 high 0 \n",
"4 high 0 \n",
"5 low 1 \n",
"6 low 1 \n",
"7 high 0 \n",
"8 low 1 \n",
"9 high 0 \n",
"10 low 1 \n",
"11 high 0 \n",
"12 low 1 \n",
"13 high 0 \n",
"14 high 0 \n",
"15 high 0 \n",
"16 high 0 \n",
"17 high 0 \n",
"18 low 1 \n",
"19 low 1 \n",
"20 high 0 "
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.preprocessing import LabelEncoder, OneHotEncoder\n",
"\n",
"# Копируем датасет\n",
"df4 = df2.copy(deep=True)\n",
"\n",
"## One-Hot Encoding для 'Turbidity' (низкая/высокая)\n",
"df4['turbidity_level'] = df4['turbidity'].apply(lambda x: 'low' if x < 4 else 'high')\n",
"\n",
"ohe = OneHotEncoder(sparse_output=False, drop='first') # drop='first' → избежим дублирования информации\n",
"turbidity_encoded = ohe.fit_transform(df4[['turbidity_level']])\n",
"\n",
"# Добавляем закодированные столбцы в датафрейм\n",
"df4[['turbidity_level_encoded']] = turbidity_encoded.astype(int)\n",
"#df4.drop(columns=['turbidity_level'], inplace=True)\n",
"\n",
"# Проверяем изменения\n",
"df4.head(21)"
]
},
{
"cell_type": "markdown",
"id": "19286783-4b81-4de1-bc9d-c5307aaf5eb2",
"metadata": {},
"source": [
"___\n",
"# №5"
]
},
{
"cell_type": "markdown",
"id": "eeb8af78-2c86-4699-ae77-3cecaf302e8b",
"metadata": {},
"source": [
"## Гистограммы распределения\n",
"Гистограммы показывают распределение значений числовых признаков."
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "ca7b6281-6b12-49c8-ad0e-b8f24d76e543",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKQAAAMVCAYAAABJEiyOAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XlcVFX/B/DPDAzDAAICsikgLrkvBamoqSmCa6X2qOWCy09LwSVb1B7LLdNss8zlsXKpXErTFjUTzT1csFxBciFRFAgQUBmGgTm/P3yYh2Fm2JkFPu/Xi5fOPefe+Z5Z7p37vfecIxFCCBAREREREREREZmI1NwBEBERERERERFR3cKEFBERERERERERmRQTUkREREREREREZFJMSBERERERERERkUkxIUVERERERERERCbFhBQREREREREREZkUE1JERERERERERGRSTEgREREREREREZFJMSFFREREREREREQmxYQUERHVWo0bN4ZEItH5k8vl8Pf3x4gRI3Ds2DFzh0hEREREVCdJhBDC3EEQERHVhMaNG+PmzZvo1q0bmjVrBgDIyspCbGwskpOTIZFI8MEHH2DWrFlmjpSIiIiIqG5hQoqIiGqtooTUhg0bMG7cOO3yvLw8vPTSS/jqq69gY2ODuLg4PPbYY+YLlIiIiIiojmGXPSIiqnPs7e2xatUqODo6orCwEDt37jR3SEREREREdQoTUkREVCc5OTmhRYsWAIC///5bu/yff/7Bp59+igEDBiAwMBAKhQLOzs4IDg7Ge++9h7y8PKPbzM3NxYoVK9C9e3fUr18fcrkcAQEBGDx4MLZs2aJTt1evXnrjWxn669Wrl856hw8f1i7Pzc3Fm2++iWbNmsHe3h6+vr6YOHEikpOTjcZ47949zJ8/Hx07dkS9evXg4OCAdu3a4Z133kFubq7R9f7+++8yYy3+OlbHc27cuLHU52vcuLHB9e7cuYNZs2ahVatWcHBwQL169fDkk0/is88+Q0FBgV79cePGQSKRYOPGjaW2veTzGVteJCIiQhvr4cOHDdbZsWMH+vXrhwYNGsDOzg4NGzbE6NGjERcXZ+RVMa48nyeJRIIFCxborLdgwQLt8ps3b2Ls2LHw8fGBvb09HnvsMSxYsABKpVLv+Yren+J3HxZRqVR47LHHtM9ZXGZmJiIiIvD4449r2+3t7Y1u3bph7dq1yM/P16lf1usMGH8PK/t9NhQ38KjL75NPPgmJRIKpU6eiZEeDgoICrF27Fl27doWLiwvs7e3RvHlzTJ8+3ej30tB75OHhgaCgIHzwwQd4+PCh0XYTERFZM1tzB0BERGQuOTk5AAC5XK5d9uuvv2LGjBlo2LAhmjVrhi5duuCff/7BqVOnMGfOHPz44484dOiQzjoAcOvWLfTr1w9xcXFwcHBAt27d4O7ujuTkZBw7dgwXL17Eiy++qBdDeHg4vL299ZanpKTg119/NRp7fn4++vTpgwsXLqBXr1544okncPz4caxfvx579+7F0aNH0bx5c5114uLi0K9fP9y6dQs+Pj7o3r07ZDIZTp8+jbfeegvff/89Dh8+DBcXF6PP6+joiOeff15n2Y4dO4yeNFfHczZt2hTdu3fXPn7w4AG+//57g3WPHj2K5557Dvfu3UPjxo3Rt29fqFQqnD59GtOmTcPPP/+M3bt3QyaTGX2+6nD8+HF89dVXRssLCgowatQofPfdd5DL5QgKCkLDhg3x119/YfPmzdi5cyd27tyJfv36Vfi5IyIiDC4/d+4czp8/b3S9xMREBAUFwdbWFj169IBSqcShQ4ewcOFCHDhwAAcOHIC9vX25Ynj//fdx9epVg2WZmZn47rvv0K5dO3Tr1g2Ojo5ISUnB8ePH8fvvv+PHH3/EL7/8Uq7nKUtlv8+GZGVloW/fvoiNjcXUqVPx2Wef6SStVCoVBg0apH2dnn76aTg7O+P333/HypUrsXXrVvz666944oknDG6/6H0TQuDu3bs4cuQIXn/9dfz00084evRotbweREREFkUQERHVUgEBAQKA2LBhg17Z+fPnhVQqFQDE+vXrtcvj4uJETEyMXv3MzEwRFhYmAIjly5frlBUWForg4GABQISFhYm0tDSdcqVSKfbs2aOzrGfPngKAOHTokMHYDx06JACInj17GlwOQDRr1kzcvHlT53mGDRsmAIguXbrorJebmyuaNm0qAIh58+YJlUqlLXv48KF44YUXBAAxfvx4g/Fcv35dABABAQF6ZUWvc2JiYrU+5xdffCEAiHHjxuksT0xMNBjL3bt3hbu7u5BIJGL16tWisLBQW5aeni569+4tAIiFCxfqrBcREWH0c1La8xlbrlarRbt27YSNjY3w9fU1+D6/+eabAoDo3LmzuHHjhk7Z9u3bhY2Njahfv764d++ewZgMKfpcGDN//nwBQMyfP9/gcgDi2WefFbm5udqyW7duiccee0wAEHPmzNFZb8OGDQKAiIiI0FmemJgoFAqF8Pf3NxhTQUGBUKvVevHdvHlTNGjQQAAQly5d0tmesc9eEWPvYWW+z0Lov5b37t3TfscjIyMNxjB79mwBQDRt2lTnu5Cfny8mTpwoAIjAwECd74Gh5yry119/iXr16gkA4uLFi0bbTkREZK3YZY+IiOqU7Oxs7N27F0OHDoVGo4Gvry+GDx+uLW/VqhW6dOmit179+vWxcuVKAMD27dt1yn7++WfExsbCx8cH33//PRo0aKBTbm9vjwEDBlR7Wz744AP4+/vrPM/q1avh4OCAkydP4vfff9eWbdq0CdevX8egQYOwePFi2NnZacscHBywbt06eHp64uuvv8a9e/f0nquoa1NF7iyq6nOq1eoKPeeKFSuQkZGByMhITJkyBVLp/37muLu746uvvoJMJsNnn32m19WqOq1cuRIXL17E1KlT9e5SAx7dIfTxxx/D3t4e33//PQIDA3XKn3/+ebz00ku4d+8evvnmmxqLsySFQoG1a9dCoVBolzVq1AgffvghAGD16tWldlktMmPGDCiVSnz88ccGy21sbGBrq3+TfvFlxd+7qqjM97mk4ndGRUVF4bPPPtOrk5eXh1WrVgEAPv74Y53uhTKZDJ9++im8vLyQmJiIHTt2lCv25s2bIyAgAACg0WjKtQ4REZE1YZc9IiKq9caPH4/x48frLW/atCm+//57ODo66iwvLCzE4cOH8fvvv+Pu3btQKpUQQmiTGAkJCTr19+3bBwB48cUX4eTkVEOt0OXq6opnnnlGb7mnpyf69euHnTt34vDhw+jatSsAYM+ePQCAESNGGNyek5MTgoODsXfvXpw5cwZhYWE65UVd8hwcHModY1Wfs2jcovJ0pyrP8zVs2BDNmzdHXFwcrl69WiMzK969excLFiyAl5cXFi9ejGeffVavzqFDh6BUKtGnTx80bNjQ4HZ69eqF1atX4/fff0dUVFS1x2lIWFiYwe6jgwYNgru7OzIyMvDHH39oP1OG7NmzBz/99BPCw8MxdOjQUp8vOTkZ//73v6HRaJCamopjx45BqVTihRdeQKtWrarcniIV/T4XVzwZ9dxzz2mTWCXFxsbiwYMHcHNzw+DBg/XKHRwcMHLkSHzyySc4dOiQwe67RcR/u+ytW7cOly5dQtu2bdGmTZsKtpqIiMjyMSFFRES1Xrdu3dCsWTMAgJ2dHTw9PdGlSxf069dP706Nq1evYsiQIbh8+bLR7RWNPVXk5s2bAICWLVtWc+TGNW7c2OCgywC0d9zcvn1bu+zGjRsAgDFjxmDMmDGlbvuff/7RW1Y0ILO7u3u5Y6zqc2ZkZAB4dDdLRZ7vqaeeKrPuP//8o5eQMpa4rIhXX30VOTk5WLlypdFxsYriPHjwoNH3sHicplLyTq3iGjdujIyMDJ3PVEl5eXmYPn065HK50cRNcffu3cOmTZu0j2UyGd5++229QdeL3Lx5s8zXq6TKfJ+LK0pGAcCRI0dw69Yt+Pn56dUr+n6U9ho2bdpUp25Jhto2cuRIrFq1CjY2Nka3S0REZK2YkCIiolrv//7v/wzOBGbI888/j8uXL2PQoEF444030Lp1azg7O0MmkyE/P7/cd+tYguLd0oq6/PTr1w9eXl6lrlfUTai4a9euASj9hLukqj5n0Ym7r69vhZ7v+eef17vrrSRDibXiicviShtEvbjDhw9j69ateOqppzB27Ngy42zWrBm6detW6jZNmeQsj9K6Oi5btgw3btzAvHnzDHZVLKlt27YQQqCgoABJSUlYu3YtFi1ahMTERGzatEkvQWNoQP0ix48fx/Xr1/WWV/X7HBsbiylTpsDPzw9vvvkmxowZg99++63auhQWV3ww+nv37uHkyZPYtm0bhBD46quvdLq8EhER1QZMSBEREf3XlStXcOHCBXh6emLXrl0G754ypGgcpytXrtR4jEX+/vvvMssaNWqkXebn54crV65g4sSJRk/qS3Pq1CkAQHBwcLnXqepzxsXFAUC5uyv5+fnh6tWrmD17doXiLGIscfn333+XmZBSq9WIjIyEra2tdiyh0uIEgBYtWmDjxo0VjrOmJCYmGi0z9Jkq7saNG3jvvffQuHFjvPnmmxV6XltbWzRp0gTLly/H9evX8fXXX+P555/X65Lq4eFh9PUaN26cXkKqst/n4qZMmYJVq1ZBCIH9+/fj8OHDeO+99zB37lydekVdL0t7DYvujDPWTbNk2/Lz8zFw4EB8++23CA4OxmuvvVZmvERERNaEg5oTERH9V2ZmJoBHd+QYGnTZ2ADT/fr1AwBs3bpVO9ZSTcvKysLPP/+st/yff/7RjmnVq1cv7fL+/fsDAL777rsKP9fDhw+xb98+SCQSvXGeSlOV58zIyMDZs2ehUCjwxBNP1PjzVdWKFSsQFxeHqKgotGvXrtS6ffr0gZ2dHQ4fPoy0tDQTRVi2/fv3G4xn7969yMjIQL169RAUFGRw3enTpyMvLw8rVqzQGRS9ooomBIiPj6/0NopU9vtc3KpVqyCRSCCVSvHVV1+hfv36mD9/Ps6cOaNTLzg4GE5OTsjMzMRPP/2ktx2lUolt27YBAJ5++ulyxW9nZ4chQ4YAeNRdkIiIqLZhQoqIiOi/HnvsMdjY2ODixYs4fPiwTtnPP/9sdNawZ555Bo8//jju3LmDf/3rX9qxj4rk5eXhl19+qfZ4X331VZ0xfVQqFSIjI/Hw4UN06tRJpzvY5MmTERAQgO3bt2P27Nm4f/++3vZSUlLw+eef6y1ftGgRHjx4gLCwMO04OOVR2ed88OABJk6ciMLCQowYMaLM7ndFXn/9dbi6uuKjjz7Chx9+iPz8fL06iYmJ1T5zXXZ2NhYtWgQfHx8sXLiwzPpeXl6YNm0aHj58iMGDB+PixYt6dVQqFX766SeT3nWnVCoxZcoU7WDyAHDnzh28+uqrAICXX34Z9vb2eusdPHgQe/bswYABAwwO4l7SuXPn9L4jwKPB3rds2QIAaN26dWWboVXZ73NxxbsN+vn54T//+Q/UajVGjRqlk3y2t7dHZGQkgEffy6Jx5YBHd8/NmDEDKSkpCAwMLPfdgvn5+di1axeAR3eHERER1TbsskdERPRfHh4eiIqKwieffII+ffrgqaeegq+vLxISEvDHH39g3rx5eOedd/TWk0ql2LVrF8LDw/HLL7/A398f3bt3h7u7O5KTk3H+/Hm4urqW2s2uokJCQqDRaNCiRQv07t0bDg4OOH78OO7cuQNPT0989dVXOvUdHR2xZ88eDBo0CMuXL8e6devQvn17NGrUCLm5ufjrr78QHx8PT09PTJo0CcCjcXnefvttHDp0CMCjRJGhLm3p6ekAgNdeew3BwcGYM2dOpZ/znXfewYcffoisrCy0bt0ay5cvL/dr0qhRI/z4448YNmwYXnvtNSxfvhxt27aFj48PsrOzER8fj+vXr6Nz584YPXp0hV9zY7KysgAAa9euhbOzc7nWWbZsGe7evYstW7agY8eO6NChA5o0aQJbW1vcvn0b586dw8OHD/HLL7+YbBypsWPHYvfu3WjSpAmeeuop5OXl4bfffsPDhw8REhJiNNl2+/Zt2Nvb49NPPy3X82zcuBGrV69Gx44d0ahRI9jY2OCvv/7ChQsXADya1W/gwIFVbk9lv8+l+de//oXx48djw4YNmD59Or788ktt2cKFCxEbG4uDBw+iVatWePrpp1GvXj3ExMQgKSkJ7u7u2L59u9GxoIp/t7KyshATE4O0tDTUq1cPr7zySqVeAyIiIkvGhBQREVExH3/8Mdq3b4/Vq1fj7NmzOHfuHNq1a4dt27ZhxIgRRk9gAwICEBsbi9WrV2PHjh2IiYlBfn4+vL290bNnz1Knea8MOzs77NmzBwsXLsSOHTuQnJyM+vXrY9y4cVi0aJHBmcDatGmDCxcuYO3atdi1axcuXLiAmJgYeHh4oFGjRnjttde0XYSARwOZFyWjAODEiRM4ceKE0Zi+//57pKenaxNSlXnO+Ph4NG/eHM8//zymTp0KJyenCr0uPXr0wOXLl/HZZ59hz549OHPmDFQqFTw9PeHv74/Ro0dj2LBhFdpmefTs2ROjRo0qd31bW1ts3rwZo0ePxhdffIFTp07h0qVLcHR0hI+PDwYPHoxnnnkGPXr0qPZYjQkMDERsbCz+/e9/47fffsO9e/fg7++PF198EbNnzy61K94bb7xR7rvnBg0ahLt37yI2NhZxcXFQqVRwc3ND37598cILL2Ds2LHVNmh4Zb/Ppfn0009x7NgxrF+/Hv3799fe8SSXy7Fv3z58/vnn+Oqrr3Ds2DGoVCr4+flh2rRpmD17ttHxowDozTjYqFEjTJgwAbNnz9abEZKIiKg2kIjSpkshIiIii3L48GE8/fTT6Nmzp143pOq2ceNGjB8/HocOHdIZj8qYxo0bo3HjxjUeF1WvBQsWYOHChZg/fz4WLFhg7nCIiIiojuAYUkREREREREREZFLsskdEREQGde/eHRs2bCj3GEYffPBBhbvYEREREVHdxIQUERERGdSsWTM0a9as3PXLO3sYERERERHHkCIiIiIiIiIiIpPiGFJERERERERERGRSTEgREREREREREZFJMSFFREREREREREQmxYQUERERERERERGZFBNSRERERERERERkUkxIERERERERERGRSTEhRUREREREREREJsWEFBERERERERERmRQTUkREREREREREZFJMSBERERERERERkUkxIUVERERERERERCbFhBQREREREREREZkUE1JERERERERERGRSTEgR1RCJRIKoqChzh0FERMUsWLAAEokE6enpZnn+w4cPQyKR4PDhw2Z5fiIish5Fx6ziGjdujHHjxpW57saNGyGRSPD333/XTHBE1YAJKSIiIiIiIiIiMilbcwdARERERERERGVLSEiAVMr7Sqh24CeZiIiIqJoIIaBUKs0dBhER1VJyuRwymczcYRBVCyakiCqoqC/3lStXMHz4cDg7O8Pd3R0zZsxAXl6eXv0ffvgBbdu2hVwuR5s2bbBv3z4zRE1ERMVlZWVh3LhxcHV1hYuLC8aPH4/c3Fxt+YYNG9C7d294enpCLpejdevWWLNmjd52GjdujEGDBuHXX39FcHAwFAoF/vOf/wAAbt++jeeeew6Ojo7w9PTEK6+8ApVKpbeNXr16oW3btoiLi8PTTz8NBwcHNGzYEMuXL9erq1KpMH/+fDRr1gxyuRx+fn5444039LYbHR2N7t27w9XVFU5OTmjRogXefPNNnTorV65EmzZt4ODggPr16yM4OBhbtmyp1OtJRET/c//+fcycORONGzeGXC6Hp6cn+vbtiz/++ENbZ/v27QgKCoJCoYCHhwdGjx6N5OTkMrdtaAypy5cvo3fv3lAoFGjUqBHeeecdaDQavXVjY2MRHh4ODw8PKBQKBAYGYsKECVVuL1FlscseUSUNHz4cjRs3xtKlS3Hy5El8+umnuHfvHr766ittnePHj2Pnzp2YOnUq6tWrh08//RTDhg1DUlIS3N3dzRg9EVHdNnz4cAQGBmLp0qX4448/8MUXX8DT0xPvvfceAGDNmjVo06YNnnnmGdja2uLnn3/G1KlTodFoEBkZqbOthIQEvPDCC3jppZcwadIktGjRAkqlEn369EFSUhKmT58OX19ffP311/jtt98MxnPv3j3069cPQ4cOxfDhw7Fjxw7Mnj0b7dq1Q//+/QEAGo0GzzzzDI4fP47JkyejVatWuHjxIj7++GP89ddf+OGHHwA8OjEZNGgQ2rdvj0WLFkEul+PatWs4ceKE9vk+//xzTJ8+Hc8//7z2gsqFCxdw6tQpvPjiizXwihMR1R0vv/wyduzYgaioKLRu3RoZGRk4fvw44uPj8cQTT2Djxo0YP348nnzy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6aefVqoBRERERERknSIjI7Flyxb8+OOPqFevnnbMJxcXFygUCri4uGDixImYNWsW3Nzc4OzsjGnTpiEkJARdunQBAISFhaF169YYM2YMli9fjpSUFMybNw+RkZEGk05ERGQZKpSQAoBBgwZh0KBBRsslEgkWLVqERYsWGa3j5uaGLVu2VPSpiYiIiIioFlmzZg0AoFevXjrLN2zYgHHjxgEAPv74Y+1FbJVKhfDwcKxevVpb18bGBrt378aUKVMQEhICR0dHRERElHo+QkRE5lfhhBQREREREVF1EEJ/FrSS7O3tsWrVKqxatcponYCAAOzdu7c6QyMiohomNXcARERERERERERUtzAhRUREREREREREJsWEFBERERERERERmRTHkCIiIiKqo+Lj442WeXh4wN/f34TREBERUV3ChBQRERFRHVP44B4gkWD06NFG69grHJBwJZ5JKSIiIqoRTEgRERER1TEa1QNACLgPehUydz+9cnXGLWTs/hDp6elMSBERFZOUlIT09HSDZbyzlKhimJAiIiIiqqNk7n6QezczdxhERFYhKSkJLVq2Qp4y12A57ywlqhgmpIiIiIiIiIjKkJ6ejjxlrsG7S3lnKVHFMSFFREREREREVE68u5SoekjNHQAREREREREREdUtvEOKiIiIiIiI6L/i4+MrtLy8dTjoOZEuJqSIiIiIiIiozit8cA+QSDB69OgaWZeDnhPpYkKKiIiIiIiI6jyN6gEghMFBywFAeSMW2ce+qdS6HPScSB8TUkRERERERET/ZWzQcnXGrUqvS0T6OKg5ERERERERERGZFBNSRERERERERERkUkxIERERERERERGRSTEhRUREREREREREJsWEFBERERERERERmRQTUkREREREREREZFJMSBERUbVbunQpnnzySdSrVw+enp547rnnkJCQoFMnLy8PkZGRcHd3h5OTE4YNG4bU1FSdOklJSRg4cCAcHBzg6emJ119/HQUFBaZsChERERER1QAmpIiIqNodOXIEkZGROHnyJKKjo6FWqxEWFoaHDx9q67zyyiv4+eefsX37dhw5cgR37tzB0KFDteWFhYUYOHAg8vPz8fvvv2PTpk3YuHEj3n77bXM0iYiIiIiIqpGtuQMgIqLaZ9++fTqPN27cCE9PT5w9exY9evRAdnY2vvzyS2zZsgW9e/cGAGzY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2zY8fPgQH3zwQbnaGBQUhAMHDuCjjz6Cr68vAgMDtZM3AY+67RUdcwxdKCECYGQ+SCIzu3nzphg7dqxo0KCBkMvlokmTJiIyMlKoVCqj02WXnBpVCP3pt4UQIjU1VYwfP154eHgIOzs70a5dO53puIX43zTd77//vl5sGo1GvPvuuyIgIEDI5XLx+OOPi927d4uIiAgREBBQ5jaK4ty+fbvOckPtKhm/sXUNTSsuhBB//vmnGDp0qHB3dxdyuVwEBASI4cOHi4MHDwohhFCpVOL1118XHTp0EPXq1ROOjo6iQ4cOYvXq1XrtJiKqK8q7b/zwww9Fw4YNhVwuF926dROxsbF6+21D+2djx7G4uDgRGhoqnJychIeHh5g0aZI4f/683voFBQVi2rRpokGDBkIikehNxb1u3ToRFBQkFAqFqFevnmjXrp144403xJ07d6rtNSIisjalnV8IIcT169fF888/L1xdXYW9vb3o1KmT2L17t842KvpbfPXq1SIwMFDI5XIRHBwsjh49avD85Pr16yI0NFTI5XLh5eUl3nzzTREdHa13biOEEMePHxd9+/bVHp/at28vVq5cqS0v7RgBQMyfP1/vtSl6LolEIm7duqVXPn/+fL1jzZUrV0SPHj2EQqEQAERERIROuUqlEvXr1xcuLi5CqVTqbZNICCEkQlTjCNBEREREREREVKcVFBTA19cXgwcPxpdffmnucMhCcQwpIiIiIiIiIqo2P/zwA/755x+diTqISuIdUkRERERERERUZadOncKFCxewePFieHh44I8//jB3SGTBeIcUEREREREREVXZmjVrMGXKFHh6euKrr74ydzhk4XiHFBERERERERERmRTvkCIiIiIiIiIiIpNiQoqIiIiIiIiIiEzKtiKV16xZgzVr1uDvv/8GALRp0wZvv/02+vfvDwDIy8vDq6++im3btkGlUiE8PByrV6+Gl5eXdhv/z969x0VV5n8A/8zAMAzigIDMSIKhuV7y1qIpZuQmgqZuJltZmpiu7rJgGV1MV000xdwulplWa1qr0K790jY0hLxRiTdKSyVW08KIgQABkWEYmPP7w2XWcWZgBubO5/168Xox53nOOd/nzMx55nzPOc8pLi5GUlISDh48CH9/fyQmJiI9PR3e3paHotPp8Msvv6Br164QiUTWNIGIqFMTBAFXr15FWFgY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YerUqQCuX1E1YcIEzJs3D5s3b4ZWq0VKSgqmT5/OJ+wREREREbk5JqSIiMjmRowYgV27dmHx4sVYuXIlIiMjsX79esyYMUNf57nnnsO1a9cwf/58VFdXY8yYMcjOzoavr6++zo4dO5CSkoJx48ZBLBYjISEBb7zxhjOaRERERERENsSEFBER2cXkyZMxefJks+UikQgrV67EypUrzdYJCgpCRkaGPcIjIiIiIiInEjs7ACIiIiIiIiIi6lyYkCIiIiIiIiIiIodiQoqIiIiIiIiIiByKCSkiIiIiIiIiInIoDmpOHq24uBgVFRVG0wsLC50QDREREREREREBTEiRBysuLka//gPQoK53dihEREREREREdAMmpMhjVVRUoEFdj+DJT0MSHG5Qpr54EjVfbHdSZERERERERESdGxNS5PEkweGQKm8zmKatvOykaIiIiIiIiIiICSkiIiIiIiKiTqy1MXZDQkIQERHhwGios2BCioiIiIiIiKgTaq67AohEmDlzptk6vjI/FH1fyKQU2RwTUkRERERERESdkE5TBwiCyXF3getDnVRmvYKKigompMjmmJAiIiIiIiIi6sRMjbt7I97SR/bAhBQRERERERERGeEtfWRPTEgRERERERERkRHe0kf2xIQUEREREREREZnV1i19RO0hdnYARERERERERETUuTAhRURERERETpOXl4cpU6YgLCwMIpEIu3fvNigXBAHLly9Hjx49IJPJEBsbi/PnzxvUqaqqwowZMyCXyxEYGIi5c+eirq7Oga0gIiJrMSFFREREREROc+3aNQwdOhQbN240Wb5u3Tq88cYb2Lx5M44dO4YuXbogPj4eDQ0N+jozZszA2bNnkZubi6ysLOTl5WH+/PmOagIREbUDx5AiIiIiIiKnmThxIiZOnGiyTBAErF+/HkuXLsX9998PAPjggw+gUCiwe/duTJ8+HYWFhcjOzsaJEycwfPhwAMCGDRtw33334eWXX0ZYWJjD2kJERJZjQoqIiIiIiFzSpUuXoFKpEBsbq58WEBCAkSNHIj8/H9OnT0d+fj4CAwP1ySgAiI2NhVgsxrFjx/DAAw8YLVej0UCj0ehf19bWAgC0Wi20Wq1d2tKyXHst31nMtevnn39GZWWlyXmKioogk8ng6y2Cj5dgVN4k8TJb3lpZR8tbyqTeIgCAVGz5uh0RV0eX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R319vUGdrVu34t5770VoaCikUikGDhyITZs2WRRveXk55s6dC4VCAV9fXwwdOhTvv/++QZ0b+5eWfsvPzw9xcXG4fPkyBEHAqlWr0LNnT8hkMtx///2oqqoyWtdnn32Gu+++G126dEHXrl0xadIknD17Vl8+e/ZsbNy4Ub89Wv5u1lYf9+2332L27Nno3bs3fH19oVQqMWfOHFRWVhrUa+kLL1y40OY2Bq73kVFRUZDJZAgKCsL06dNx+fJlgzrnz59HQkIClEolfH190bNnT0yfPh01NTVtvBNERI7XVp+1bds2o3nMjXl47tw5PProo+jWrRvGjBljMM/FixcRHx+PLl26ICwsDCtXroQgCK0uFwC+/PJLjBgxAr6+vujTpw/efvttk+24cQypbdu24cEHHwQA/O53v9O36dChQ0hMTERISAi0Wq3RMuLi4tCvX7/WNheRVXiakezq7NmzuPvuuyGXy/Hcc89BIpHg7bffxtixY3H48GGMHDlSX/cvf/kLunfvjuXLl+vPGGzatAkpKSm4++678dRTT+HHH3/E1KlT0a1bN4OkVW1tLf7+97/jkUcewbx583D16lVs2bIF8fHxOH78OIYNG2YQV0ZGBq5evYo//elPEIlEWLduHaZNm4aLFy+2euYgLS0NK1aswOjRo7Fy5Ur4+Pjg2LFjOHDgAOLi4izaJr/88gvuvPNOVFdXY/78+ejfvz9KSkrw0Ucfob6+Hj4+Prh48SJ2796NBx98EJGRkSgrK8Pbb7+Ne+65B+fOnUNYWJjBMletWgUfHx8888wz0Gg08PHx0ZelpKQgMDAQK1asQFFRETZt2oSffvpJn8wCrneSaWlpiI2NRVJSkr7eiRMn8NVXXxlskytXrmDChAmYNm0aHnroIXz00UdYtGgRBg8ejIkTJ1q0DYioc5s2bRr+85//IDMzE6+99hpCQkIAAN27dwcAHDhwAP/617+QkpKCkJAQ3Hrrra0u76GHHkJkZCTS09Px9ddf4+9//ztCQ0Px0ksv6ets2rQJt99+O37/+9/D29sbn376Kf7yl79Ap9MhOTnZ7LLVajXGjh2LCxcuICUlBZGRkdi5cydmz56N6upqPPnkkwb1d+zYgcbGRixYsABVVVVYt24dHnroIdx77704dOgQFi1ahAsXLmDDhg145pln8N577+nn/cc//oHExETE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v+utNWvWLKjVauzatQvA9Sf0FRQU4LHHHuvQcoluxjGkyGWYu8LHEtu3b8fs2bMxdepUPPvsswgNDYWXlxfS09Pxww8/GNW/8UqsGwk3DRzoLGvWrMGyZcswZ84crFq1CkFBQRCLxVi4cKHJJ+h1ZNtZy9W3HRG5P2v3aW3tl3744QeMGzcO/fv3x6uvvorw8HD4+Phg7969eO2112z6ZFJzsbQVY0sM//jHP6BUKo3qWfNUJUv20w899BCOHDmCZ599FsOGDYO/vz90Oh0mTJhgcntYEr9IJMJnn31msq6/v7/+/1deeQWzZ8/GJ598gpycHDzxxBNIT0/H0aNHDcaHJCJyZebukGhubjY7jyN/s3fEwIEDERUVhe3bt2PWrFnYvn07fHx88NBDDzk7NPIwTEiR3XTv3h1+fn4oKioyKvv+++8hFosRHh5u9OSfFr169QIAXLhwAb/73e/005uamvDjjz9iyJAh+mkfffQRevfujY8//tigc7DloHt9+vSBTqfDuXPnjAZJt1T37t0hl8tx5syZVut99NFH+N3vfoctW7YYTK+urtYPpGip8+fPG2y/uro6lJaW4r777gPwv+1cVFRkcGamsbERly5dQmxsrFXrIyKyhKW3OtvCp59+Co1Gg3//+98GV/pYchtcr1698O2330Kn0xlcJfX999/ry22hT58+AIDQ0NA297sd3XZXrlzB/v37kZaWhuXLl+unt1yl1R59+vSBIAiIjIzUn9VvzeDBgzF48GAsXboUR44cwV133YXNmzfjxRdfbHcMRET2Ymq/23Kl6M1Ppb75yllL6HQ6XLx40WD/+Z///AcAzD7Yo3v37pDJZCb33aaOv27WVl8ya9YspKamorS0FBkZGZg0aZLRsClEHcVb9shuvLy8EBcXh08++cTgUtOysjJkZGRgzJgxkMvlZucfPnw4goOD8e6776KpqUk/fceOHUa3h7Wcjb3x7O+xY8eQn59vo9YAU6dOhVgsxsqVK43OHlt6dZBYLMbUqVPx6aef4uTJk0blLcvx8vIyWubOnTv1Y41Y45133jF4bOumTZvQ1NSkfyJebGwsfHx88MYbbxisc8uWLaipqcGkSZOsXicRUVu6dOkCwPiHvD2Y6iNqamqwdevWNue97777oFKp8M9//lM/rampCRs2bIC/vz/uuecem8QYHx8PuVyONWvWmHzU9q+//qr/v6PbztT2AID169e3a3nA9adQeXl5IS0tzWi5giCgsrISwPWn4t7YpwPXk1NisRgajabd6ycisidT+125XI6QkBDk5eUZ1H3rrbfatY4333xT/78gCHjzzTchkUgwbtw4k/W9vLwQHx+P3bt3o7i4WD+9sLAQ+/bta3N9bfUljzzyCEQiEZ588klcvHjRYAxZIlvhFVJkVy+++CJyc3MxZswY/OUvf4G3tzfefvttaDQarFu3rtV5fXx8sGLFCixYsAD33nsvHnroIfz444/Ytm0b+vTpY5DVnzx5Mj7++GM88MADmDRpEi5duoTNmzdj4MCBqKurs0lbbrvtNvz1r3/FqlWrcPfdd2PatGmQSqU4ceIEwsLCkJ6ebtFy1qxZg5ycHNxzzz2YP38+BgwYgNLSUuzcuRNffvklAgMDMXnyZKxcuRKPP/44Ro8eje+++w47duwwurfcEo2NjRg3bhweeughFBUV4a233sKYMWPw+9//HsD1syuLFy9GWloaJkyYgN///vf6eiNGjGDnQ0R2ERUVBQD461//iunTp0MikWDKlCl2WVdcXBx8fHwwZcoU/OlPf0JdXR3effddhIaGorS0tNV558+fj7fffhuzZ89GQUEBbr31Vnz00Uf46quvsH79enTt2tUmMcrlcmzatAmPPfYYfvvb32L69Ono3r07iouLsWfPHtx11136g5WWbffEE08gPj4eXl5emD59ulXriomJwbp166DVanHLLbcgJycHly5danf8ffr0wYsvvojFixfjxx9/xNSpU9G1a1dcunQJu3btwvz58/HMM8/gwIEDSElJwYMPPojf/OY3aGpqwj/+8Q94eXkhISGh3esnIrInc33WH//4R6xduxZ//OMfMXz4cOTl5emvbLKGr68vsrOzkZiYiJEjR+Kzzz7Dnj17sGTJEnTv3t3sfGlpacjOzsbdd9+Nv/zlL/oTJrfffju+/fbbVtc5bNgweHl54aWXXkJNTQ2kUinuvfdehIaGArh+jDBhwgTs3LkTgYGBPElNdsGEFNnV7bffji+++AKLFy9Geno6dDodRo4cie3bt+ufPNSalJQUCIKAV155Bc888wyGDh2Kf//733jiiSfg6+urrzd79myoVCq8/fbb2LdvHwYOHIjt27dj586dOHTokM3as3LlSkRGRmLDhg34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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"columns_to_exclude = ['potability', 'turbidity_level_encoded']\n",
"df4_filtered = df4.drop(columns=columns_to_exclude)\n",
"\n",
"df4_filtered.hist(figsize=(12, 8), bins=40, edgecolor='black')\n",
"plt.suptitle(\"Распределение признаков\", fontsize=16)\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "4d1f246b-8ab6-40c5-88a9-8b748fee29f4",
"metadata": {},
"source": [
"## Boxplot\n",
"Boxplot помогает выявить выбросы и увидеть распределение данных по квартилям(по четырём равным частям)."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "25e08e53-d9f8-4597-b5f4-076fd94ad609",
"metadata": {},
"outputs": [],
"source": [
"# plt.title(\"Boxplot распределения признаков\")\n",
"\n",
"fig, ax = plt.subplots(9, 1, figsize=(10, 20))\n",
"fig.subplots_adjust(hspace=0.75)\n",
"columns_name = df4.columns[:9]\n",
"for i in range(9) :\n",
" sns.boxplot(x=df4[columns_name[i]], ax=ax[i])"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6372a747-b1ff-4bf2-aad2-528f07f2e61b",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "7dfe93a5-d666-4d99-aa4e-a0ffecf2488b",
"metadata": {},
"source": [
"## Матрица корреляций\n",
"Позволяет оценить взаимосвязи между переменными."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ca6d9dde-d5ad-4d7c-bb87-aad50abc0b6c",
"metadata": {},
"outputs": [],
"source": [
"plt.figure(figsize=(10, 6))\n",
"sns.heatmap(df4.drop(columns=['turbidity_level']).corr(), annot=True, cmap=\"coolwarm\", fmt=\".2f\", linewidths=0.5)\n",
"plt.title(\"Матрица корреляций\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "8cac80dc-dd78-4449-84e5-b4ecbb350b85",
"metadata": {},
"source": [
"## Парные диаграммы\n",
"Отображает распределение и взаимосвязь признаков."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "626c96e9-3c7b-475b-8b31-e16c26395402",
"metadata": {},
"outputs": [],
"source": [
"columns_to_exclude = ['turbidity_level_encoded']\n",
"df4_filtered = df4.drop(columns=columns_to_exclude)\n",
"\n",
"sns.pairplot(df4_filtered, hue=\"potability\", corner=True)\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"id": "0e685fe5-871d-4647-a75a-84539605feed",
"metadata": {},
"source": [
"## Диаграмма рассеяния"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e1c0b5e8-0940-45a8-ba03-4b712fa20340",
"metadata": {},
"outputs": [],
"source": [
"plt.figure(figsize=(10, 6))\n",
"sns.scatterplot(data=df4, x='turbidity', y='organic_carbon', hue='potability', alpha=0.7, palette={0: \"red\", 1: \"blue\"})\n",
"plt.title(\"Связь мутности и органического углерода с пригодностью воды\")\n",
"plt.xlabel(\"Мутность (Turbidity)\")\n",
"plt.ylabel(\"Органический углерод (Organic Carbon)\")\n",
"plt.legend(title=\"Пригодность к питью\", labels=[\"Непригодна\", \"Пригодна\"])\n",
"plt.show()\n",
"\n",
"plt.figure(figsize=(10, 6))\n",
"sns.scatterplot(data=df4, x='hardness', y='conductivity', hue='potability', alpha=0.7, palette={0: \"red\", 1: \"blue\"})\n",
"plt.title(\"Связь жесткости и проводимости с пригодностью воды\")\n",
"plt.xlabel(\"Жесткость воды (Hardness)\")\n",
"plt.ylabel(\"Проводимость (Conductivity)\")\n",
"plt.legend(title=\"Пригодность к питью\", labels=[\"Непригодна\", \"Пригодна\"])\n",
"plt.show()\n",
"\n",
"plt.figure(figsize=(10, 6))\n",
"sns.scatterplot(data=df4, x='ph', y='potability', alpha=0.5, color=\"purple\")\n",
"plt.title(\"Зависимость pH от пригодности воды\")\n",
"plt.xlabel(\"pH\")\n",
"plt.ylabel(\"Пригодность к питью (0 - нет, 1 - да)\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c84f59c6-c486-44f2-bbc7-4abe405505e9",
"metadata": {},
"outputs": [],
"source": [
"tar = df4['potability'].value_counts()\n",
"print(tar)\n",
"\n",
"plt.pie(tar, explode=[0, 0.01], autopct='%.f%%', shadow=True)\n",
"plt.legend(labels=['Непригодны для употребления', 'Пригодны для употребления'], loc='upper right',)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "707e19a4-343f-46fb-a10b-352a5ffda6d4",
"metadata": {},
"source": [
"___\n",
"# №6"
]
},
{
"cell_type": "markdown",
"id": "d8012d87-7db3-4364-a8a3-f8c731162736",
"metadata": {},
"source": [
"### Удаление признаков с низкой дисперсией"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "dcdfff49-6bbf-4c04-ad2b-6dc4558b8ff8",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.feature_selection import VarianceThreshold\n",
"\n",
"# Создание объекта для удаления признаков с низкой дисперсией\n",
"selector = VarianceThreshold(threshold=0.01) # Устанавливаем порог дисперсии (например, 0.01)\n",
"\n",
"# Применяем фильтр к данным\n",
"df2_filtered = df2[df2.columns[selector.fit(df2).get_support()]] # Оставляем только признаки с высокой дисперсией\n",
"print(df2_filtered.columns) # Печатаем имена оставшихся столбцов"
]
},
{
"cell_type": "markdown",
"id": "9fb3797c-cb7e-4d2f-a796-f540d8a60209",
"metadata": {},
"source": [
"### Одномерный отбор признаков"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8f24f758-1ebd-4741-afac-e51c20b309c5",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.feature_selection import SelectKBest, f_classif\n",
"\n",
"# Отбор признаков, используя критерий f_classif\n",
"X = df2.drop(columns=[\"potability\"]) # Признаки (все столбцы, кроме целевой переменной)\n",
"y = df2[\"potability\"] # Целевая переменная\n",
"\n",
"# Применяем SelectKBest\n",
"selector = SelectKBest(f_classif, k=5) # Отбираем 5 лучших признаков\n",
"X_new = selector.fit_transform(X, y)\n",
"\n",
"# Выводим имена выбранных признаков\n",
"selected_columns = X.columns[selector.get_support()]\n",
"print(\"Выбранные признаки:\", selected_columns)\n"
]
},
{
"cell_type": "markdown",
"id": "797f6113-b44f-43cc-a488-e7530a16eafe",
"metadata": {},
"source": [
"### Рекурсивное исключение признаков"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b2e7a98e-b438-4192-a93d-74c62a29667d",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.feature_selection import RFE\n",
"from sklearn.linear_model import LogisticRegression\n",
"\n",
"# Признаки и целевая переменная\n",
"X = df2.drop(columns=[\"potability\"])\n",
"y = df2[\"potability\"]\n",
"\n",
"model = LogisticRegression(max_iter=2000)\n",
"selector = RFE(model, n_features_to_select=5) # Выбираем 5 признаков\n",
"X_new = selector.fit_transform(X, y)\n",
"\n",
"selected_columns_rfe = X.columns[selector.get_support()]\n",
"print(\"Выбранные признаки после RFE:\", selected_columns_rfe)\n",
"# Преобразуем данные обратно в DataFrame с исходными именами колонок\n",
"X_new_df = pd.DataFrame(X_new, columns=selected_columns_rfe)\n",
"X_new_df"
]
},
{
"cell_type": "markdown",
"id": "ce903807-038b-4f3f-a736-5e91b9ef857c",
"metadata": {},
"source": [
"___\n",
"# №7"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "dc6f77de-b579-4933-8e76-1d31944ee2b9",
"metadata": {},
"outputs": [],
"source": [
"tar = df4['potability'].value_counts()\n",
"print(tar)\n",
"\n",
"plt.pie(tar, explode=[0, 0.01], autopct='%.f%%', shadow=True)\n",
"plt.legend(labels=['Непригодны для употребления', 'Пригодны для употребления'], loc='upper right',)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "a26ab089-0231-4dd7-907e-49722314d571",
"metadata": {},
"source": [
"___\n",
"# №8"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8de7381d-bcac-4ed1-acb1-37bd104890fd",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"X = df4.drop(columns=[\"potability\", \"turbidity_level_encoded\", \"turbidity_level\"]) # Убираем целевой признак, оставляем только признаки\n",
"y = df4[\"potability\"]\n",
"\n",
"# Разбиение на 80% train и 20% test\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)\n",
"\n",
"# Вывод размеров получившихся выборок\n",
"print(f\"Размер X_train: {X_train.shape}\")\n",
"print(f\"Размер X_test: {X_test.shape}\")\n",
"print(f\"Размер y_train: {y_train.shape}\")\n",
"print(f\"Размер y_test: {y_test.shape}\")\n",
"print(\"Обучающая выборка X:\")\n",
"print(X_train)\n",
"print(\"\\nТестовая выборка X:\")\n",
"print(X_test)\n",
"print(\"\\nОбучающая выборка y:\")\n",
"print(y_train)\n",
"print(\"\\nТестовая выборка y:\")\n",
"print(y_test)"
]
},
{
"cell_type": "markdown",
"id": "30a67195-1a78-4cd7-9bc3-a25d19e203b1",
"metadata": {},
"source": [
"___\n",
"# №9"
]
},
{
"cell_type": "markdown",
"id": "fa0d1354-b543-4b3b-9340-54e4a0547d54",
"metadata": {},
"source": [
"Большая разницы дипозонов может повлиять на работу моделей."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d7dc5bda-12cd-463b-ac3a-af36cb966a35",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.preprocessing import MinMaxScaler\n",
"\n",
"scaler = MinMaxScaler()\n",
"X_train_scaled = scaler.fit_transform(X_train) # Обучаем на train и трансформируем\n",
"X_test_scaled = scaler.transform(X_test) # Применяем те же параметры к test\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6fdeb591-760a-4199-b27f-656116a2b537",
"metadata": {},
"outputs": [],
"source": [
"print(\"Обучающая выборка X:\")\n",
"print(X_train_scaled)\n",
"print(\"\\nТестовая выборка X:\")\n",
"print(X_test_scaled)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1e388ce5-bf43-40c7-b930-43a514ac1194",
"metadata": {},
"outputs": [],
"source": [
"# Преобразуем нормализованные данные обратно в DataFrame с исходными именами колонок\n",
"X_train_scaled_df = pd.DataFrame(X_train_scaled, columns=X.columns)\n",
"\n",
"# Теперь ты можешь увидеть нормализованные данные с названиями столбцов\n",
"X_train_scaled_df"
]
},
{
"cell_type": "markdown",
"id": "ab8e575d-5e81-401a-865a-c64a8ac99f67",
"metadata": {},
"source": [
"___\n",
"# Лабораторная работа 2"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "baadf589-f410-490f-a02e-68c63fc3347c",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.metrics import accuracy_score\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from catboost import CatBoostClassifier\n",
"from sklearn.neural_network import MLPClassifier\n",
"\n",
"\n",
"# К-ближайших соседей\n",
"knn = KNeighborsClassifier(n_neighbors=5)\n",
"# Обучение модели\n",
"knn.fit(X_train_scaled, y_train)\n",
"# Прогноз на тестовых данных\n",
"y_pred_knn = knn.predict(X_test_scaled)\n",
"# Оценка точности\n",
"accuracy_knn = accuracy_score(y_test, y_pred_knn)\n",
"print(f\"Точность K-ближайших соседей: {accuracy_knn:.4f}\")\n",
"\n",
"# Дерево решений\n",
"dt = DecisionTreeClassifier(random_state=42)\n",
"# Обучение модели\n",
"dt.fit(X_train_scaled, y_train)\n",
"# Прогноз на тестовых данных\n",
"y_pred_dt = dt.predict(X_test_scaled)\n",
"# Оценка точности\n",
"accuracy_dt = accuracy_score(y_test, y_pred_dt)\n",
"print(f\"Точность дерева решений: {accuracy_dt:.4f}\")\n",
"\n",
"# Случайный лес\n",
"rf = RandomForestClassifier(random_state=42)\n",
"# Обучение модели\n",
"rf.fit(X_train_scaled, y_train)\n",
"# Прогноз на тестовых данных\n",
"y_pred_rf = rf.predict(X_test_scaled)\n",
"# Оценка точности\n",
"accuracy_rf = accuracy_score(y_test, y_pred_rf)\n",
"print(f\"Точность случайного леса: {accuracy_rf:.4f}\")\n",
"\n",
"# # Градиентный бустинг\n",
"# catboost_model = CatBoostClassifier(iterations=500, learning_rate=0.1, depth=6, random_state=42, verbose=200)\n",
"# # Обучение модели\n",
"# catboost_model.fit(X_train, y_train)\n",
"# # Прогноз на тестовых данных\n",
"# y_pred_catboost = catboost_model.predict(X_test)\n",
"# # Оценка точности\n",
"# accuracy_catboost = accuracy_score(y_test, y_pred_catboost)\n",
"# print(f\"Точность градиентного бустинга (CatBoost): {accuracy_catboost:.4f}\")\n",
"\n",
"# Нейронные сети\n",
"mlp = MLPClassifier(hidden_layer_sizes=(100,), max_iter=500, random_state=42)\n",
"# Обучение модели\n",
"mlp.fit(X_train_scaled, y_train)\n",
"# Прогноз на тестовых данных\n",
"y_pred_mlp = mlp.predict(X_test_scaled)\n",
"# Оценка точности\n",
"accuracy_mlp = accuracy_score(y_test, y_pred_mlp)\n",
"print(f\"Точность нейронной сети: {accuracy_mlp:.4f}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "21e21e6f-74b1-4b3b-a7ad-bfd0f8b2fb63",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.16"
}
},
"nbformat": 4,
"nbformat_minor": 5
}