diff --git a/main.ipynb b/main.ipynb
index 86456ff7..8490866a 100644
--- a/main.ipynb
+++ b/main.ipynb
@@ -9,7 +9,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 124,
"metadata": {},
"outputs": [],
"source": [
@@ -18,7 +18,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 125,
"metadata": {},
"outputs": [],
"source": [
@@ -34,7 +34,7 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 126,
"metadata": {},
"outputs": [
{
@@ -67,7 +67,7 @@
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": 127,
"metadata": {},
"outputs": [],
"source": [
@@ -88,7 +88,7 @@
},
{
"cell_type": "code",
- "execution_count": 25,
+ "execution_count": 128,
"metadata": {},
"outputs": [],
"source": [
@@ -105,7 +105,7 @@
},
{
"cell_type": "code",
- "execution_count": 26,
+ "execution_count": 129,
"metadata": {},
"outputs": [],
"source": [
@@ -124,14 +124,14 @@
},
{
"cell_type": "code",
- "execution_count": 27,
+ "execution_count": 130,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
- "C:\\Users\\micha\\AppData\\Local\\Temp\\ipykernel_26160\\3644708252.py:1: DtypeWarning: Columns (7) have mixed types. Specify dtype option on import or set low_memory=False.\n",
+ "C:\\Users\\micha\\AppData\\Local\\Temp\\ipykernel_26160\\1671418303.py:1: DtypeWarning: Columns (7) have mixed types. Specify dtype option on import or set low_memory=False.\n",
" df_fina_1 = pd.read_csv(\n"
]
},
@@ -160,7 +160,7 @@
"
Rok | \n",
" Dochody_podatek_lesny | \n",
" Dochody_podatek_PCC | \n",
- " Dochody_podatek_... | \n",
+ " Dochody_podatek_od_dzialalnosci_gospodarczej | \n",
" Dochody_podatek_od_nieruchomosci | \n",
" Dochody_podatek_od_spadkow | \n",
" Dochody_podatek_od_srodkow_transportowych | \n",
@@ -343,18 +343,31 @@
"47081 3263011 2021 163778.36 9082482.28 \n",
"47082 3263011 2022 174823.49 7474079.65 \n",
"\n",
- "Rodzaje dochodów Dochody_podatek_... Dochody_podatek_od_nieruchomosci \n",
- "0 NaN 13532989.00 \\\n",
- "1 NaN 13667398.00 \n",
- "2 NaN 14633962.72 \n",
- "3 NaN 14944781.74 \n",
- "4 NaN 16089534.56 \n",
- "... ... ... \n",
- "47078 572868.36 108107448.79 \n",
- "47079 468411.51 38527846.59 \n",
- "47080 329522.12 78767466.83 \n",
- "47081 492045.28 78491368.35 \n",
- "47082 1019054.56 84996948.99 \n",
+ "Rodzaje dochodów Dochody_podatek_od_dzialalnosci_gospodarczej \n",
+ "0 NaN \\\n",
+ "1 NaN \n",
+ "2 NaN \n",
+ "3 NaN \n",
+ "4 NaN \n",
+ "... ... \n",
+ "47078 572868.36 \n",
+ "47079 468411.51 \n",
+ "47080 329522.12 \n",
+ "47081 492045.28 \n",
+ "47082 1019054.56 \n",
+ "\n",
+ "Rodzaje dochodów Dochody_podatek_od_nieruchomosci \n",
+ "0 13532989.00 \\\n",
+ "1 13667398.00 \n",
+ "2 14633962.72 \n",
+ "3 14944781.74 \n",
+ "4 16089534.56 \n",
+ "... ... \n",
+ "47078 108107448.79 \n",
+ "47079 38527846.59 \n",
+ "47080 78767466.83 \n",
+ "47081 78491368.35 \n",
+ "47082 84996948.99 \n",
"\n",
"Rodzaje dochodów Dochody_podatek_od_spadkow \n",
"0 NaN \\\n",
@@ -411,7 +424,7 @@
"[47083 rows x 11 columns]"
]
},
- "execution_count": 27,
+ "execution_count": 130,
"metadata": {},
"output_type": "execute_result"
}
@@ -428,7 +441,7 @@
"df_fina_1 = df_fina_1.rename(columns={\n",
" 'dochody podatkowe - podatek leśny': 'Dochody_podatek_lesny',\n",
" 'dochody podatkowe - podatek od czynności cywilnoprawnych': 'Dochody_podatek_PCC',\n",
- " 'dochody podatkowe - podatek od działalności gospodarczej osób fizycznych, opłacany w formie karty podatkowej': 'Dochody_podatek_...',\n",
+ " 'dochody podatkowe - podatek od działalności gospodarczej osób fizycznych, opłacany w formie karty podatkowej': 'Dochody_podatek_od_dzialalnosci_gospodarczej',\n",
" 'dochody podatkowe - podatek od nieruchomości': 'Dochody_podatek_od_nieruchomosci',\n",
" 'dochody podatkowe - podatek od spadków i darowizn': 'Dochody_podatek_od_spadkow',\n",
" 'dochody podatkowe - podatek od środków transportowych': 'Dochody_podatek_od_srodkow_transportowych',\n",
@@ -441,7 +454,7 @@
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 131,
"metadata": {},
"outputs": [
{
@@ -816,7 +829,7 @@
"[47083 rows x 14 columns]"
]
},
- "execution_count": 28,
+ "execution_count": 131,
"metadata": {},
"output_type": "execute_result"
}
@@ -849,7 +862,7 @@
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 132,
"metadata": {},
"outputs": [
{
@@ -1066,7 +1079,7 @@
"[48611 rows x 8 columns]"
]
},
- "execution_count": 29,
+ "execution_count": 132,
"metadata": {},
"output_type": "execute_result"
}
@@ -1093,7 +1106,7 @@
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": 133,
"metadata": {},
"outputs": [
{
@@ -1336,7 +1349,7 @@
"[48611 rows x 8 columns]"
]
},
- "execution_count": 30,
+ "execution_count": 133,
"metadata": {},
"output_type": "execute_result"
}
@@ -1363,7 +1376,7 @@
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": 134,
"metadata": {},
"outputs": [
{
@@ -1593,7 +1606,7 @@
"[48611 rows x 8 columns]"
]
},
- "execution_count": 31,
+ "execution_count": 134,
"metadata": {},
"output_type": "execute_result"
}
@@ -1627,7 +1640,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 135,
"metadata": {},
"outputs": [],
"source": [
@@ -1636,7 +1649,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 136,
"metadata": {},
"outputs": [],
"source": [
@@ -1646,7 +1659,7 @@
},
{
"cell_type": "code",
- "execution_count": 34,
+ "execution_count": 137,
"metadata": {},
"outputs": [],
"source": [
@@ -1656,22 +1669,31 @@
},
{
"cell_type": "code",
- "execution_count": 35,
+ "execution_count": 138,
"metadata": {},
"outputs": [],
"source": [
"df_data = df_data.merge(df_fina_1, left_on=[df_data['Kod'].str.slice(stop=-1), 'Rok'], right_on=[df_fina_1['Kod'].str.slice(stop=-1), 'Rok'], how='left', suffixes=(None, '_fina_1'))\n",
- "df_data = df_data.drop(['key_0', 'Kod_fina_1'], axis=1)\n"
+ "df_data = df_data.drop(['key_0', 'Kod_fina_1'], axis=1)\n",
+ "\n",
+ "df_data = df_data.merge(df_fina_2, left_on=[df_data['Kod'].str.slice(stop=-1), 'Rok'], right_on=[df_fina_2['Kod'].str.slice(stop=-1), 'Rok'], how='left', suffixes=(None, '_fina_2'))\n",
+ "df_data = df_data.drop(['key_0', 'Kod_fina_2'], axis=1)\n"
]
},
{
"cell_type": "code",
- "execution_count": 36,
+ "execution_count": 139,
"metadata": {},
"outputs": [],
"source": [
- "df_data = df_data.merge(df_fina_2, left_on=[df_data['Kod'].str.slice(stop=-1), 'Rok'], right_on=[df_fina_2['Kod'].str.slice(stop=-1), 'Rok'], how='left', suffixes=(None, '_fina_2'))\n",
- "df_data = df_data.drop(['key_0', 'Kod_fina_2'], axis=1)"
+ "df_data = df_data.merge(df_ludn_1, left_on=[df_data['Kod'].str.slice(stop=-1), 'Rok'], right_on=[df_ludn_1['Kod'].str.slice(stop=-1), 'Rok'], how='left', suffixes=(None, '_ludn_1'))\n",
+ "df_data = df_data.drop(['key_0', 'Kod_ludn_1'], axis=1)\n",
+ "\n",
+ "df_data = df_data.merge(df_ludn_2, left_on=[df_data['Kod'].str.slice(stop=-1), 'Rok'], right_on=[df_ludn_2['Kod'].str.slice(stop=-1), 'Rok'], how='left', suffixes=(None, '_ludn_2'))\n",
+ "df_data = df_data.drop(['key_0', 'Kod_ludn_2'], axis=1)\n",
+ "\n",
+ "df_data = df_data.merge(df_ludn_3, left_on=[df_data['Kod'].str.slice(stop=-1), 'Rok'], right_on=[df_ludn_3['Kod'].str.slice(stop=-1), 'Rok'], how='left', suffixes=(None, '_ludn_3'))\n",
+ "df_data = df_data.drop(['key_0', 'Kod_ludn_3'], axis=1)"
]
},
{
@@ -1683,469 +1705,54 @@
},
{
"cell_type": "code",
- "execution_count": 37,
+ "execution_count": 140,
"metadata": {},
"outputs": [
{
"data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Kod | \n",
- " Rok | \n",
- " Suma | \n",
- " Powierzchnia | \n",
- " Wynagrodzenie_ogolem | \n",
- " Wynagrodzenie_w_relacji_do_sredniej | \n",
- " Dochody_podatek_lesny | \n",
- " Dochody_podatek_PCC | \n",
- " Dochody_podatek_... | \n",
- " Dochody_podatek_od_nieruchomosci | \n",
- " ... | \n",
- " Dochody_z_uslug | \n",
- " Dochody_dofinansowanie_inwestycyjne | \n",
- " Dochody_dofinansowanie_razem | \n",
- " Udzialy_w_podatkach_dochodowych_od_osob_fizycznych | \n",
- " Udzialy_w_podatkach_dochodowych_od_osob_prywatnych | \n",
- " Udzialy_w_podatkach_dochodowych_razem | \n",
- " Wplywy_z_innych_lokalnych_oplat | \n",
- " Wplywy_z_oplaty_eksploatacyjnej | \n",
- " Wplywy_z_oplaty_skarbowej | \n",
- " Wplywy_z_oplaty_targowej | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 0 | \n",
- " 0201011 | \n",
- " 2014 | \n",
- " 2482706.36 | \n",
- " 24.00 | \n",
- " 3422.90 | \n",
- " 85.50 | \n",
- " 8755.97 | \n",
- " 1530935.80 | \n",
- " 84220.54 | \n",
- " 23823448.76 | \n",
- " ... | \n",
- " 2380938.91 | \n",
- " 61031.32 | \n",
- " 1900308.99 | \n",
- " 27297399.00 | \n",
- " 1984447.80 | \n",
- " 29281846.80 | \n",
- " 7018623.68 | \n",
- " 28867.32 | \n",
- " 928926.81 | \n",
- " 188736.80 | \n",
- "
\n",
- " \n",
- " | 1 | \n",
- " 0201011 | \n",
- " 2016 | \n",
- " 1016449.03 | \n",
- " 24.00 | \n",
- " 3666.19 | \n",
- " 85.40 | \n",
- " 14900.55 | \n",
- " 1631451.83 | \n",
- " 77726.70 | \n",
- " 21961009.53 | \n",
- " ... | \n",
- " 3748786.27 | \n",
- " 111299.61 | \n",
- " 284981.40 | \n",
- " 31878605.00 | \n",
- " 3726450.74 | \n",
- " 35605055.74 | \n",
- " 7277990.62 | \n",
- " 31466.01 | \n",
- " 475771.76 | \n",
- " 158803.00 | \n",
- "
\n",
- " \n",
- " | 2 | \n",
- " 0201011 | \n",
- " 2017 | \n",
- " 1507540.44 | \n",
- " 24.00 | \n",
- " 3901.94 | \n",
- " 86.20 | \n",
- " 14988.07 | \n",
- " 2022884.74 | \n",
- " 66169.12 | \n",
- " 22107840.97 | \n",
- " ... | \n",
- " 4137582.84 | \n",
- " 89949.86 | \n",
- " 118699.74 | \n",
- " 34702412.00 | \n",
- " 2536379.13 | \n",
- " 37238791.13 | \n",
- " 7339238.14 | \n",
- " 24998.04 | \n",
- " 511127.33 | \n",
- " 131562.90 | \n",
- "
\n",
- " \n",
- " | 3 | \n",
- " 0201011 | \n",
- " 2018 | \n",
- " 1125087.75 | \n",
- " 24.00 | \n",
- " 4214.66 | \n",
- " 87.20 | \n",
- " 15221.03 | \n",
- " 2519471.86 | \n",
- " 74351.81 | \n",
- " 22767685.01 | \n",
- " ... | \n",
- " 5556645.41 | \n",
- " 0.00 | \n",
- " 24676.92 | \n",
- " 39128194.00 | \n",
- " 1506913.18 | \n",
- " 40635107.18 | \n",
- " 7494838.88 | \n",
- " 16194.57 | \n",
- " 479489.69 | \n",
- " 124935.70 | \n",
- "
\n",
- " \n",
- " | 4 | \n",
- " 0201011 | \n",
- " 2020 | \n",
- " 9052911.45 | \n",
- " 24.00 | \n",
- " 4887.95 | \n",
- " 88.50 | \n",
- " 15459.78 | \n",
- " 2632509.99 | \n",
- " 74425.14 | \n",
- " 28336580.30 | \n",
- " ... | \n",
- " 5344170.62 | \n",
- " 2640028.00 | \n",
- " 2660441.20 | \n",
- " 40456699.00 | \n",
- " 2143819.12 | \n",
- " 42600518.12 | \n",
- " 7627128.14 | \n",
- " 5661.00 | \n",
- " 440259.90 | \n",
- " 62502.50 | \n",
- "
\n",
- " \n",
- " | ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " | 9723 | \n",
- " 3263011 | \n",
- " 2017 | \n",
- " 467956789.99 | \n",
- " 197.00 | \n",
- " 4536.08 | \n",
- " 100.20 | \n",
- " 150527.43 | \n",
- " 5163900.56 | \n",
- " 587305.94 | \n",
- " 74099232.11 | \n",
- " ... | \n",
- " 1859435.58 | \n",
- " 20000.18 | \n",
- " 212570.70 | \n",
- " 47760120.00 | \n",
- " 1199589.08 | \n",
- " 48959709.08 | \n",
- " 10930683.15 | \n",
- " 38789.78 | \n",
- " 404331.07 | \n",
- " 622509.60 | \n",
- "
\n",
- " \n",
- " | 9724 | \n",
- " 3263011 | \n",
- " 2018 | \n",
- " 11972196.58 | \n",
- " 202.00 | \n",
- " 4779.09 | \n",
- " 98.80 | \n",
- " 154462.39 | \n",
- " 5361951.37 | \n",
- " 572868.36 | \n",
- " 108107448.79 | \n",
- " ... | \n",
- " 1996824.80 | \n",
- " 25285.92 | \n",
- " 237485.34 | \n",
- " 52799183.00 | \n",
- " 2690098.17 | \n",
- " 55489281.17 | \n",
- " 10458871.30 | \n",
- " 4684.54 | \n",
- " 434077.88 | \n",
- " 608625.90 | \n",
- "
\n",
- " \n",
- " | 9725 | \n",
- " 3263011 | \n",
- " 2019 | \n",
- " 2074346.69 | \n",
- " 202.00 | \n",
- " 5222.62 | \n",
- " 100.80 | \n",
- " 150329.31 | \n",
- " 6088184.20 | \n",
- " 468411.51 | \n",
- " 38527846.59 | \n",
- " ... | \n",
- " 2187576.47 | \n",
- " 0.00 | \n",
- " 225831.84 | \n",
- " 55319040.00 | \n",
- " 2770684.17 | \n",
- " 58089724.17 | \n",
- " 11369287.11 | \n",
- " 3456.95 | \n",
- " 415686.53 | \n",
- " 610059.50 | \n",
- "
\n",
- " \n",
- " | 9726 | \n",
- " 3263011 | \n",
- " 2020 | \n",
- " 8314185.11 | \n",
- " 202.00 | \n",
- " 5517.68 | \n",
- " 99.90 | \n",
- " 156556.52 | \n",
- " 5125090.74 | \n",
- " 329522.12 | \n",
- " 78767466.83 | \n",
- " ... | \n",
- " 1917372.55 | \n",
- " 21002107.00 | \n",
- " 21192313.05 | \n",
- " 53739656.00 | \n",
- " 3144444.38 | \n",
- " 56884100.38 | \n",
- " 12281916.71 | \n",
- " 5157.50 | \n",
- " 355201.29 | \n",
- " 507341.00 | \n",
- "
\n",
- " \n",
- " | 9727 | \n",
- " 3263011 | \n",
- " 2021 | \n",
- " 752819.71 | \n",
- " 202.00 | \n",
- " 5564.41 | \n",
- " 92.70 | \n",
- " 163778.36 | \n",
- " 9082482.28 | \n",
- " 492045.28 | \n",
- " 78491368.35 | \n",
- " ... | \n",
- " 4110105.72 | \n",
- " 888293.63 | \n",
- " 1072910.83 | \n",
- " 63936763.00 | \n",
- " 3975531.95 | \n",
- " 67912294.95 | \n",
- " 17127683.55 | \n",
- " 27746.70 | \n",
- " 416473.03 | \n",
- " 0.00 | \n",
- "
\n",
- " \n",
- "
\n",
- "
9728 rows × 27 columns
\n",
- "
"
- ],
"text/plain": [
- " Kod Rok Suma Powierzchnia Wynagrodzenie_ogolem \n",
- "0 0201011 2014 2482706.36 24.00 3422.90 \\\n",
- "1 0201011 2016 1016449.03 24.00 3666.19 \n",
- "2 0201011 2017 1507540.44 24.00 3901.94 \n",
- "3 0201011 2018 1125087.75 24.00 4214.66 \n",
- "4 0201011 2020 9052911.45 24.00 4887.95 \n",
- "... ... ... ... ... ... \n",
- "9723 3263011 2017 467956789.99 197.00 4536.08 \n",
- "9724 3263011 2018 11972196.58 202.00 4779.09 \n",
- "9725 3263011 2019 2074346.69 202.00 5222.62 \n",
- "9726 3263011 2020 8314185.11 202.00 5517.68 \n",
- "9727 3263011 2021 752819.71 202.00 5564.41 \n",
- "\n",
- " Wynagrodzenie_w_relacji_do_sredniej Dochody_podatek_lesny \n",
- "0 85.50 8755.97 \\\n",
- "1 85.40 14900.55 \n",
- "2 86.20 14988.07 \n",
- "3 87.20 15221.03 \n",
- "4 88.50 15459.78 \n",
- "... ... ... \n",
- "9723 100.20 150527.43 \n",
- "9724 98.80 154462.39 \n",
- "9725 100.80 150329.31 \n",
- "9726 99.90 156556.52 \n",
- "9727 92.70 163778.36 \n",
- "\n",
- " Dochody_podatek_PCC Dochody_podatek_... \n",
- "0 1530935.80 84220.54 \\\n",
- "1 1631451.83 77726.70 \n",
- "2 2022884.74 66169.12 \n",
- "3 2519471.86 74351.81 \n",
- "4 2632509.99 74425.14 \n",
- "... ... ... \n",
- "9723 5163900.56 587305.94 \n",
- "9724 5361951.37 572868.36 \n",
- "9725 6088184.20 468411.51 \n",
- "9726 5125090.74 329522.12 \n",
- "9727 9082482.28 492045.28 \n",
- "\n",
- " Dochody_podatek_od_nieruchomosci ... Dochody_z_uslug \n",
- "0 23823448.76 ... 2380938.91 \\\n",
- "1 21961009.53 ... 3748786.27 \n",
- "2 22107840.97 ... 4137582.84 \n",
- "3 22767685.01 ... 5556645.41 \n",
- "4 28336580.30 ... 5344170.62 \n",
- "... ... ... ... \n",
- "9723 74099232.11 ... 1859435.58 \n",
- "9724 108107448.79 ... 1996824.80 \n",
- "9725 38527846.59 ... 2187576.47 \n",
- "9726 78767466.83 ... 1917372.55 \n",
- "9727 78491368.35 ... 4110105.72 \n",
- "\n",
- " Dochody_dofinansowanie_inwestycyjne Dochody_dofinansowanie_razem \n",
- "0 61031.32 1900308.99 \\\n",
- "1 111299.61 284981.40 \n",
- "2 89949.86 118699.74 \n",
- "3 0.00 24676.92 \n",
- "4 2640028.00 2660441.20 \n",
- "... ... ... \n",
- "9723 20000.18 212570.70 \n",
- "9724 25285.92 237485.34 \n",
- "9725 0.00 225831.84 \n",
- "9726 21002107.00 21192313.05 \n",
- "9727 888293.63 1072910.83 \n",
- "\n",
- " Udzialy_w_podatkach_dochodowych_od_osob_fizycznych \n",
- "0 27297399.00 \\\n",
- "1 31878605.00 \n",
- "2 34702412.00 \n",
- "3 39128194.00 \n",
- "4 40456699.00 \n",
- "... ... \n",
- "9723 47760120.00 \n",
- "9724 52799183.00 \n",
- "9725 55319040.00 \n",
- "9726 53739656.00 \n",
- "9727 63936763.00 \n",
- "\n",
- " Udzialy_w_podatkach_dochodowych_od_osob_prywatnych \n",
- "0 1984447.80 \\\n",
- "1 3726450.74 \n",
- "2 2536379.13 \n",
- "3 1506913.18 \n",
- "4 2143819.12 \n",
- "... ... \n",
- "9723 1199589.08 \n",
- "9724 2690098.17 \n",
- "9725 2770684.17 \n",
- "9726 3144444.38 \n",
- "9727 3975531.95 \n",
- "\n",
- " Udzialy_w_podatkach_dochodowych_razem Wplywy_z_innych_lokalnych_oplat \n",
- "0 29281846.80 7018623.68 \\\n",
- "1 35605055.74 7277990.62 \n",
- "2 37238791.13 7339238.14 \n",
- "3 40635107.18 7494838.88 \n",
- "4 42600518.12 7627128.14 \n",
- "... ... ... \n",
- "9723 48959709.08 10930683.15 \n",
- "9724 55489281.17 10458871.30 \n",
- "9725 58089724.17 11369287.11 \n",
- "9726 56884100.38 12281916.71 \n",
- "9727 67912294.95 17127683.55 \n",
- "\n",
- " Wplywy_z_oplaty_eksploatacyjnej Wplywy_z_oplaty_skarbowej \n",
- "0 28867.32 928926.81 \\\n",
- "1 31466.01 475771.76 \n",
- "2 24998.04 511127.33 \n",
- "3 16194.57 479489.69 \n",
- "4 5661.00 440259.90 \n",
- "... ... ... \n",
- "9723 38789.78 404331.07 \n",
- "9724 4684.54 434077.88 \n",
- "9725 3456.95 415686.53 \n",
- "9726 5157.50 355201.29 \n",
- "9727 27746.70 416473.03 \n",
- "\n",
- " Wplywy_z_oplaty_targowej \n",
- "0 188736.80 \n",
- "1 158803.00 \n",
- "2 131562.90 \n",
- "3 124935.70 \n",
- "4 62502.50 \n",
- "... ... \n",
- "9723 622509.60 \n",
- "9724 608625.90 \n",
- "9725 610059.50 \n",
- "9726 507341.00 \n",
- "9727 0.00 \n",
- "\n",
- "[9728 rows x 27 columns]"
+ "Index(['Kod', 'Rok', 'Suma', 'Powierzchnia', 'Wynagrodzenie_ogolem',\n",
+ " 'Wynagrodzenie_w_relacji_do_sredniej', 'Dochody_podatek_lesny',\n",
+ " 'Dochody_podatek_PCC', 'Dochody_podatek_od_dzialalnosci_gospodarczej',\n",
+ " 'Dochody_podatek_od_nieruchomosci', 'Dochody_podatek_od_spadkow',\n",
+ " 'Dochody_podatek_od_srodkow_transportowych', 'Dochody_podatek_rolny',\n",
+ " 'Dochody_podatek_odrebne_ustawy', 'Dochody_razem', 'Dochody_z_majatku',\n",
+ " 'Dochody_z_najmu_i_dzierzawy', 'Dochody_z_uslug',\n",
+ " 'Dochody_dofinansowanie_inwestycyjne', 'Dochody_dofinansowanie_razem',\n",
+ " 'Udzialy_w_podatkach_dochodowych_od_osob_fizycznych',\n",
+ " 'Udzialy_w_podatkach_dochodowych_od_osob_prywatnych',\n",
+ " 'Udzialy_w_podatkach_dochodowych_razem',\n",
+ " 'Wplywy_z_innych_lokalnych_oplat', 'Wplywy_z_oplaty_eksploatacyjnej',\n",
+ " 'Wplywy_z_oplaty_skarbowej', 'Wplywy_z_oplaty_targowej',\n",
+ " 'Ludnosc_ogolem', 'Ludnosc_w_wieku_poprodukcyjnym',\n",
+ " 'Ludnosc_w_wieku_produkcyjnym', 'Ludnosc_w_wieku_produkcyjnym_mobilnym',\n",
+ " 'Ludnosc_w_wieku_produkcyjnym_niemobilnym',\n",
+ " 'Ludnosc_w_wieku_przedprodukcyjnym', 'Ludnosc_mezczyzni',\n",
+ " 'Ludnosc_mezczyzni_w_wieku_poprodukcyjnym',\n",
+ " 'Ludnosc_mezczyzni_w_wieku_produkcyjnym',\n",
+ " 'Ludnosc_mezczyzni_w_wieku_produkcyjnym_mobilnym',\n",
+ " 'Ludnosc_mezczyzni_w_wieku_produkcyjnym_niemobilnym',\n",
+ " 'Ludnosc_mezczyzni_w_wieku_przedprodukcyjnym', 'Ludnosc_kobiety',\n",
+ " 'Ludnosc_kobiety_w_wieku_poprodukcyjnym',\n",
+ " 'Ludnosc_kobiety_w_wieku_produkcyjnym',\n",
+ " 'Ludnosc_kobiety_w_wieku_produkcyjnym_mobilnym',\n",
+ " 'Ludnosc_kobiety_w_wieku_produkcyjnym_niemobilnym',\n",
+ " 'Ludnosc_kobiety_w_wieku_przedprodukcyjnym'],\n",
+ " dtype='object')"
]
},
- "execution_count": 37,
+ "execution_count": 140,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "df_data"
+ "df_data.columns"
]
},
{
"cell_type": "code",
- "execution_count": 38,
+ "execution_count": 141,
"metadata": {},
"outputs": [],
"source": [
@@ -2156,15 +1763,191 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Preprocessing"
+ "..."
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 142,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Mean Squared Error: 314617008704682.4\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sklearn.model_selection import train_test_split\n",
+ "# from sklearn.preprocessing import StandardScaler\n",
+ "# from sklearn.preprocessing import MinMaxScaler\n",
+ "from sklearn.tree import DecisionTreeRegressor, plot_tree\n",
+ "from sklearn.metrics import mean_squared_error\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "df_data.dropna(inplace=True)\n",
+ "\n",
+ "feature_names = [\n",
+ " 'Powierzchnia',\n",
+ " 'Wynagrodzenie_ogolem',\n",
+ " 'Wynagrodzenie_w_relacji_do_sredniej',\n",
+ " 'Dochody_podatek_lesny',\n",
+ " 'Dochody_podatek_PCC',\n",
+ " 'Dochody_podatek_od_dzialalnosci_gospodarczej',\n",
+ " 'Dochody_podatek_od_nieruchomosci',\n",
+ " 'Dochody_podatek_od_spadkow',\n",
+ " 'Dochody_podatek_od_srodkow_transportowych',\n",
+ " 'Dochody_podatek_rolny',\n",
+ " 'Dochody_podatek_odrebne_ustawy',\n",
+ " 'Dochody_razem',\n",
+ " 'Dochody_z_majatku',\n",
+ " 'Dochody_z_najmu_i_dzierzawy', \n",
+ " 'Dochody_z_uslug',\n",
+ " 'Dochody_dofinansowanie_inwestycyjne',\n",
+ " 'Dochody_dofinansowanie_razem',\n",
+ " 'Udzialy_w_podatkach_dochodowych_od_osob_fizycznych',\n",
+ " 'Udzialy_w_podatkach_dochodowych_od_osob_prywatnych',\n",
+ " 'Udzialy_w_podatkach_dochodowych_razem',\n",
+ " 'Wplywy_z_innych_lokalnych_oplat',\n",
+ " 'Wplywy_z_oplaty_eksploatacyjnej',\n",
+ " 'Wplywy_z_oplaty_skarbowej',\n",
+ " 'Wplywy_z_oplaty_targowej',\n",
+ " 'Ludnosc_ogolem',\n",
+ " 'Ludnosc_w_wieku_poprodukcyjnym',\n",
+ " 'Ludnosc_w_wieku_produkcyjnym',\n",
+ " 'Ludnosc_w_wieku_produkcyjnym_mobilnym',\n",
+ " 'Ludnosc_w_wieku_produkcyjnym_niemobilnym',\n",
+ " 'Ludnosc_w_wieku_przedprodukcyjnym',\n",
+ " 'Ludnosc_mezczyzni',\n",
+ " 'Ludnosc_mezczyzni_w_wieku_poprodukcyjnym',\n",
+ " 'Ludnosc_mezczyzni_w_wieku_produkcyjnym',\n",
+ " 'Ludnosc_mezczyzni_w_wieku_produkcyjnym_mobilnym',\n",
+ " 'Ludnosc_mezczyzni_w_wieku_produkcyjnym_niemobilnym',\n",
+ " 'Ludnosc_mezczyzni_w_wieku_przedprodukcyjnym',\n",
+ " 'Ludnosc_kobiety',\n",
+ " 'Ludnosc_kobiety_w_wieku_poprodukcyjnym',\n",
+ " 'Ludnosc_kobiety_w_wieku_produkcyjnym',\n",
+ " 'Ludnosc_kobiety_w_wieku_produkcyjnym_mobilnym',\n",
+ " 'Ludnosc_kobiety_w_wieku_produkcyjnym_niemobilnym',\n",
+ " 'Ludnosc_kobiety_w_wieku_przedprodukcyjnym']\n",
+ "\n",
+ "X = df_data[feature_names]\n",
+ "y = df_data['Suma']\n",
+ "\n",
+ "# scaler = StandardScaler()\n",
+ "# scaler = MinMaxScaler()\n",
+ "# X = scaler.fit_transform(X)\n",
+ "\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)\n",
+ "\n",
+ "model = DecisionTreeRegressor(random_state=1)\n",
+ "model.fit(X_train, y_train)\n",
+ "\n",
+ "y_pred = model.predict(X_test)\n",
+ "mse = mean_squared_error(y_test, y_pred)\n",
+ "print(\"Mean Squared Error:\", mse)\n",
+ "\n",
+ "# Dodatkowe dane:\n",
+ "# Wojewodztwo\n",
+ "# ..."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 143,
"metadata": {},
"outputs": [],
- "source": []
+ "source": [
+ "# plt.figure(figsize=(15, 10))\n",
+ "# plot_tree(model, feature_names=feature_names, filled=True, rounded=True)\n",
+ "# plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 144,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHHCAYAAACRAnNyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABYyElEQVR4nO3deXwTdf4/8NfM5GyTtpS2HKW0cosgHhUFBFRUFJb1WnUVFXDV1cVjdXUX1q/iBYjr9VsP8AJxZQEP0F3xwEURRRQQEBARyg2FtlCaqzlnPr8/2kZ6QZOmyaR9PR+PPh5kMknemZb2lZnP5/2RhBACRERERDokJ7oAIiIiosYwqBAREZFuMagQERGRbjGoEBERkW4xqBAREZFuMagQERGRbjGoEBERkW4xqBAREZFuMagQERGRbjGoENEJSZKERx55JNFlJNx5552H8847L3x79+7dkCQJb775ZsJqqqtujUTJjkGFKM5efvllSJKEs88+O+rnKC4uxiOPPIINGzbErjCdW758OSRJCn8ZjUZ069YNN910E3bu3Jno8iLy7bff4pFHHkFFRUWiSyHSPUOiCyBqa+bNm4eCggKsXr0aRUVF6NGjR8TPUVxcjEcffRQFBQU47bTTYl+kjt19990466yzEAwGsW7dOrz66qtYsmQJNm3ahM6dO8e1lvz8fHi9XhiNxoge9+233+LRRx/F+PHjkZGR0TLFEbUSPKNCFEe7du3Ct99+i2effRbZ2dmYN29eoktKOkOHDsUNN9yACRMm4IUXXsDTTz+N8vJyzJ07t9HHeDyeFqlFkiRYLBYoitIiz09EDCpEcTVv3jy0a9cOo0ePxu9+97tGg0pFRQXuvfdeFBQUwGw2o0uXLrjppptw+PBhLF++HGeddRYAYMKECeFLITXjJAoKCjB+/Ph6z1l37EIgEMDDDz+MM888E+np6UhNTcXQoUPx5ZdfRvy+SkpKYDAY8Oijj9a775dffoEkSXjxxRcBAMFgEI8++ih69uwJi8WC9u3b49xzz8Xnn38e8esCwAUXXACgKgQCwCOPPAJJkrBlyxZcf/31aNeuHc4999zw/m+//TbOPPNMWK1WZGZm4ve//z327dtX73lfffVVdO/eHVarFQMHDsTXX39db5/Gxqhs3boV11xzDbKzs2G1WtG7d288+OCD4foeeOABAMBJJ50U/v7t3r27RWokSna89EMUR/PmzcOVV14Jk8mE6667DjNnzsSaNWvCwQMA3G43hg4dip9//hk333wzzjjjDBw+fBj/+c9/sH//fpx88sl47LHH8PDDD+O2227D0KFDAQCDBw+OqBan04nXX38d1113HW699Va4XC688cYbGDlyJFavXh3RJaUOHTpg+PDheOeddzBlypRa9y1cuBCKouDqq68GUPWHevr06bjlllswcOBAOJ1OrF27FuvWrcNFF10U0XsAgB07dgAA2rdvX2v71VdfjZ49e2LatGkQQgAApk6dioceegjXXHMNbrnlFpSVleGFF17AsGHDsH79+vBlmDfeeAN//OMfMXjwYPz5z3/Gzp078dvf/haZmZnIy8s7bj0bN27E0KFDYTQacdttt6GgoAA7duzAf//7X0ydOhVXXnkltm3bhvnz5+O5555DVlYWACA7OztuNRIlFUFEcbF27VoBQHz++edCCCE0TRNdunQR99xzT639Hn74YQFALFq0qN5zaJomhBBizZo1AoCYM2dOvX3y8/PFuHHj6m0fPny4GD58ePh2KBQSfr+/1j5Hjx4VHTp0EDfffHOt7QDElClTjvv+XnnlFQFAbNq0qdb2vn37igsuuCB8e8CAAWL06NHHfa6GfPnllwKAmD17tigrKxPFxcViyZIloqCgQEiSJNasWSOEEGLKlCkCgLjuuutqPX737t1CURQxderUWts3bdokDAZDeHsgEBA5OTnitNNOq3V8Xn31VQGg1jHctWtXve/DsGHDhN1uF3v27Kn1OjXfOyGE+Mc//iEAiF27drV4jUTJjpd+iOJk3rx56NChA84//3wAVeMbrr32WixYsACqqob3e//99zFgwABcccUV9Z5DkqSY1aMoCkwmEwBA0zSUl5cjFAqhsLAQ69ati/j5rrzyShgMBixcuDC8bfPmzdiyZQuuvfba8LaMjAz89NNP2L59e1R133zzzcjOzkbnzp0xevRoeDwezJ07F4WFhbX2u/3222vdXrRoETRNwzXXXIPDhw+Hvzp27IiePXuGL3mtXbsWpaWluP3228PHBwDGjx+P9PT049ZWVlaGFStW4Oabb0bXrl1r3deU7108aiRKNq0mqKxYsQJjxoxB586dIUkSPvjgg4if47PPPsM555wDu92O7OxsXHXVVbWuGxNFS1VVLFiwAOeffz527dqFoqIiFBUV4eyzz0ZJSQmWLVsW3nfHjh3o169fXOqaO3cuTj311PBYkezsbCxZsgQOhyPi58rKysKIESPwzjvvhLctXLgQBoMBV155ZXjbY489hoqKCvTq1Qv9+/fHAw88gI0bNzb5dR5++GF8/vnn+OKLL7Bx40YUFxfjxhtvrLffSSedVOv29u3bIYRAz549kZ2dXevr559/RmlpKQBgz549AICePXvWenzNdOjjqZkmHe33Lx41EiWbVjNGxePxYMCAAbj55ptr/VJsql27duGyyy7Dfffdh3nz5sHhcODee+/FlVdeGdWnS6JjffHFFzh48CAWLFiABQsW1Lt/3rx5uPjii2PyWo19cldVtdbslLfffhvjx4/H5ZdfjgceeAA5OTlQFAXTp08Pj/uI1O9//3tMmDABGzZswGmnnYZ33nkHI0aMCI/DAIBhw4Zhx44d+PDDD7F06VK8/vrreO655zBr1izccsstJ3yN/v3748ILLzzhflartdZtTdMgSRI++eSTBmfp2Gy2JrzDlpUMNRLFW6sJKpdeeikuvfTSRu/3+/148MEHMX/+fFRUVKBfv36YMWNGeBbEDz/8AFVV8cQTT0CWq0403X///bjssssQDAYj7pNAdKx58+YhJycHL730Ur37Fi1ahMWLF2PWrFmwWq3o3r07Nm/efNznO95lhHbt2jXYSGzPnj21Pm2/99576NatGxYtWlTr+eoOho3E5Zdfjj/+8Y/hyz/btm3D5MmT6+2XmZmJCRMmYMKECXC73Rg2bBgeeeSRJgWVaHXv3h1CCJx00kno1atXo/vl5+cDqDq7UTOjCKiarbRr1y4MGDCg0cfWHN9ov3/xqJEo2bSaSz8ncuedd2LVqlVYsGABNm7ciKuvvhqXXHJJ+Dr5mWeeCVmWMWfOHKiqCofDgX/961+48MILGVKoWbxeLxYtWoTf/OY3+N3vflfv684774TL5cJ//vMfAMBVV12FH3/8EYsXL673XKJ69kpqaioANBhIunfvju+++w6BQCC87aOPPqo3vbXmE3vNcwLA999/j1WrVkX9XjMyMjBy5Ei88847WLBgAUwmEy6//PJa+xw5cqTWbZvNhh49esDv90f9uk1x5ZVXQlEUPProo7XeM1B1DGrqKiwsRHZ2NmbNmlXrGL755psn7CSbnZ2NYcOGYfbs2di7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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(y_test, y_pred, alpha=0.5)\n",
+ "plt.xlabel('Actual')\n",
+ "plt.ylabel('Predicted')\n",
+ "plt.title('Actual vs Predicted')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 145,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.39331 — Dochody_z_majatku\n",
+ "0.09103 — Ludnosc_mezczyzni_w_wieku_produkcyjnym_mobilnym\n",
+ "0.06877 — Udzialy_w_podatkach_dochodowych_od_osob_prywatnych\n",
+ "0.06441 — Wplywy_z_oplaty_skarbowej\n",
+ "0.05557 — Wynagrodzenie_w_relacji_do_sredniej\n",
+ "0.04363 — Wynagrodzenie_ogolem\n",
+ "0.03375 — Dochody_podatek_od_nieruchomosci\n",
+ "0.02552 — Dochody_z_uslug\n",
+ "0.02151 — Wplywy_z_oplaty_targowej\n",
+ "0.02078 — Udzialy_w_podatkach_dochodowych_od_osob_fizycznych\n",
+ "0.01974 — Ludnosc_kobiety_w_wieku_produkcyjnym_niemobilnym\n",
+ "0.01962 — Wplywy_z_oplaty_eksploatacyjnej\n",
+ "0.01867 — Dochody_z_najmu_i_dzierzawy\n",
+ "0.01638 — Dochody_dofinansowanie_inwestycyjne\n",
+ "0.01573 — Dochody_podatek_rolny\n",
+ "0.01439 — Ludnosc_mezczyzni_w_wieku_przedprodukcyjnym\n",
+ "0.01180 — Dochody_podatek_od_srodkow_transportowych\n",
+ "0.00875 — Dochody_podatek_od_dzialalnosci_gospodarczej\n",
+ "0.00809 — Dochody_podatek_PCC\n",
+ "0.00663 — Dochody_podatek_odrebne_ustawy\n",
+ "0.00634 — Dochody_podatek_lesny\n",
+ "0.00547 — Dochody_dofinansowanie_razem\n",
+ "0.00444 — Wplywy_z_innych_lokalnych_oplat\n",
+ "0.00427 — Dochody_razem\n",
+ "0.00398 — Ludnosc_mezczyzni_w_wieku_poprodukcyjnym\n",
+ "0.00367 — Powierzchnia\n",
+ "0.00329 — Dochody_podatek_od_spadkow\n",
+ "0.00248 — Udzialy_w_podatkach_dochodowych_razem\n",
+ "0.00160 — Ludnosc_kobiety_w_wieku_przedprodukcyjnym\n",
+ "0.00137 — Ludnosc_kobiety\n",
+ "0.00128 — Ludnosc_mezczyzni_w_wieku_produkcyjnym\n",
+ "0.00115 — Ludnosc_mezczyzni_w_wieku_produkcyjnym_niemobilnym\n",
+ "0.00095 — Ludnosc_w_wieku_przedprodukcyjnym\n",
+ "0.00072 — Ludnosc_mezczyzni\n",
+ "0.00030 — Ludnosc_w_wieku_poprodukcyjnym\n",
+ "0.00013 — Ludnosc_kobiety_w_wieku_produkcyjnym_mobilnym\n",
+ "0.00012 — Ludnosc_kobiety_w_wieku_produkcyjnym\n",
+ "0.00012 — Ludnosc_kobiety_w_wieku_poprodukcyjnym\n",
+ "0.00009 — Ludnosc_ogolem\n",
+ "0.00008 — Ludnosc_w_wieku_produkcyjnym\n",
+ "0.00005 — Ludnosc_w_wieku_produkcyjnym_niemobilnym\n",
+ "0.00001 — Ludnosc_w_wieku_produkcyjnym_mobilnym\n"
+ ]
+ }
+ ],
+ "source": [
+ "feature_importance = dict(zip(feature_names, model.feature_importances_))\n",
+ "for feature, importance in sorted(feature_importance.items(), key=lambda x: x[1], reverse=True):\n",
+ " print(f\"{importance:.5f} \\u2014 {feature}\")"
+ ]
}
],
"metadata": {