Transporto priemonių registravimo analizė Lietuvoje¶
Darbo tikslas¶
Išanalizuoti duomenis apie Lietuvoje registruojamas transporto priemones 2020-2024 metais. Panagrinėti, kaip kas met keitėsi registruojamų transporto priemonių kiekis ir kategorijos.
Hipotezės¶
🚗 Daugiausia transporto priemonių yra registruojama didžiuosiuose miestuose.
🚗 Mažesniuose miestuose vyrauja taršesnės kuro rūšys.
🚗 Lietuvoje vis daugėja transporto priemonių su kuro kategorijomis iš 'žaliųjų' energijos šaltinių.
🚗 Lietuvoje didelį kiekį registruojant sudaro transporto priemonės, turinčios duomenų trūkumą. Tai problema ar sistemos klaida?
Duomenys¶
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
transportas=pd.read_csv('transporto_priemones_2022-2024.csv')
kategorijos=pd.read_csv('transporto_kategorijos.csv')
transportas
Apskritis | Savivaldybė | Pavadinimas | Kiekis | Kategorija | Metai | |
---|---|---|---|---|---|---|
0 | ŠIAULIŲ | AKMENĖS RAJONO | Benzinas | 180 | L1 | 2023 |
1 | ŠIAULIŲ | AKMENĖS RAJONO | Benzinas | 374 | L3 | 2023 |
2 | ŠIAULIŲ | AKMENĖS RAJONO | Benzinas | 4 | L4 | 2023 |
3 | ŠIAULIŲ | AKMENĖS RAJONO | Benzinas | 5 | L5 | 2023 |
4 | ŠIAULIŲ | AKMENĖS RAJONO | Benzinas | 15 | L7 | 2023 |
... | ... | ... | ... | ... | ... | ... |
14076 | UTENOS | ZARASŲ RAJONO | NENUSTATYTA | 2 | L4 | 2021 |
14077 | UTENOS | ZARASŲ RAJONO | NENUSTATYTA | 4 | L4 | 2021 |
14078 | UTENOS | ZARASŲ RAJONO | NENUSTATYTA | 25 | M1 | 2021 |
14079 | UTENOS | ZARASŲ RAJONO | NENUSTATYTA | 99 | M1 | 2021 |
14080 | UTENOS | ZARASŲ RAJONO | NENUSTATYTA | 5 | N1 | 2021 |
14081 rows × 6 columns
Turime penkių metų duomenis apie registruojamas transporto priemones. Iš viso daugiau nei 14 tūkst. eilučių ir 6 stulpelius.
ilgis_transportas=len(transportas)
ilgis_transportas
14081
transportas.shape
(14081, 6)
transportas.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 14081 entries, 0 to 14080 Data columns (total 6 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Apskritis 14081 non-null object 1 Savivaldybė 14081 non-null object 2 Pavadinimas 14081 non-null object 3 Kiekis 14081 non-null int64 4 Kategorija 14081 non-null object 5 Metai 14081 non-null int64 dtypes: int64(2), object(4) memory usage: 660.2+ KB
transportas.describe()
Kiekis | Metai | |
---|---|---|
count | 14081.000000 | 14081.000000 |
mean | 763.579007 | 2022.128045 |
std | 5051.732516 | 1.406613 |
min | 1.000000 | 2020.000000 |
25% | 3.000000 | 2021.000000 |
50% | 12.000000 | 2022.000000 |
75% | 118.000000 | 2023.000000 |
max | 163141.000000 | 2024.000000 |
🔎 Galime numatyti kurioje Lietuvos apskrityje yra daugiausiai registruojamų transporto priemonių. Manau nenuostabu, atsižvelgus į gyventojų skaičių.
transportas['Apskritis'].value_counts()
Apskritis VILNIAUS 1999 KAUNO 1930 KLAIPĖDOS 1697 ŠIAULIŲ 1659 PANEVĖŽIO 1419 UTENOS 1295 ALYTAUS 1059 MARIJAMPOLĖS 1056 TELŠIŲ 918 TAURAGĖS 860 NENUSTATYTA 189 Name: count, dtype: int64
🔎 Paskaičiuokime tiksliau, kokie transporto priemonių kiekiai vyrauja šiame regione:
transportas.groupby(['Apskritis','Savivaldybė'])['Kiekis'].sum().sort_values(ascending=False)
Apskritis Savivaldybė VILNIAUS VILNIAUS MIESTO 1347446 KAUNO KAUNO MIESTO 696948 KLAIPĖDOS KRETINGOS RAJONO 447412 TAURAGĖS JURBARKO RAJONO 374067 KAUNO KAUNO RAJONO 352161 ... PANEVĖŽIO KUPIŠKIO RAJONO 50713 MARIJAMPOLĖS KALVARIJOS 49661 TAURAGĖS PAGĖGIŲ 48433 MARIJAMPOLĖS KAZLŲ RŪDOS 47239 KAUNO BIRŠTONO 32584 Name: Kiekis, Length: 61, dtype: int64
transportas[transportas['Apskritis']=='VILNIAUS'].groupby('Savivaldybė')['Kiekis'].sum().sort_values(ascending=False)
Savivaldybė VILNIAUS MIESTO 1347446 VILNIAUS RAJONO 293448 UKMERGĖS RAJONO 143016 ELEKTRĖNŲ 113683 TRAKŲ RAJONO 107364 ŠIRVINTŲ RAJONO 99955 ŠALČININKŲ RAJONO 94368 ŠVENČIONIŲ RAJONO 89548 Name: Kiekis, dtype: int64
🔎 Kiekvienoje Vilniaus savivaldybėje užfiksuota visos įmanomos transporto kategorijos.
transportas[transportas['Apskritis']=='VILNIAUS'].groupby(['Apskritis','Savivaldybė'])['Kategorija'].nunique()
Apskritis Savivaldybė VILNIAUS ELEKTRĖNŲ 18 TRAKŲ RAJONO 18 UKMERGĖS RAJONO 18 VILNIAUS MIESTO 18 VILNIAUS RAJONO 18 ŠALČININKŲ RAJONO 18 ŠIRVINTŲ RAJONO 18 ŠVENČIONIŲ RAJONO 18 Name: Kategorija, dtype: int64
kategorijos
ID | KATEGORIJA | APRAŠYMAS | |
---|---|---|---|
0 | 1 | GK | Visureigiai, kėbulas pritaikytas vežti kalinius |
1 | 2 | L1 | dviratė transporto priemonė, variklio darbinis... |
2 | 3 | L2 | triratė transporto priemonė, variklio darbini... |
3 | 4 | L3 | dviratė transporto priemonė, variklio darbinis... |
4 | 5 | L4 | triratė transporto priemonė su nesimetriškai i... |
5 | 6 | L5 | triratė transporto priemonė su simetriškai išd... |
6 | 7 | L6 | keturratė transporto priemonė, eksploatacijai ... |
7 | 8 | L7 | keturratė transporto priemonė, eksploatacijai... |
8 | 9 | M1 | transporto priemonė keleiviams vežti, <= 8 sėd... |
9 | 10 | M2 | transporto priemonė keleiviams vežti, > 8 sėdi... |
10 | 11 | M3 | transporto priemonė keleiviams vežti, > 8 sėdi... |
11 | 12 | N1 | transporto priemonė kroviniams vežti, (bendro... |
12 | 13 | N2 | transporto priemonė kroviniams vežti, (bendro... |
13 | 14 | N3 | transporto priemonė kroviniams vežti, (bendroj... |
14 | 15 | O1 | priekabos, (bendroji) masė <= 0,75 t (lengva a... |
15 | 16 | O2 | priekabos, (bendroji) masė > 0,75 t, tačiau <=... |
16 | 17 | O3 | priekabos,(bendroji) masė > 3,5 t, tačiau <= 1... |
17 | 18 | O4 | priekabos, (bendroji) masė > 10 t (krovininio ... |
transportas[transportas['Apskritis']=='VILNIAUS'].groupby('Kategorija')['Kiekis'].sum().sort_values(ascending=False)
Kategorija M1 1744125 O1 117451 N1 106522 N3 92204 O4 78788 L3 75039 O2 22146 L1 19774 N2 14766 M3 5354 L2 4360 M2 3267 L7 2200 L4 1054 L5 664 L6 525 O3 522 GK 67 Name: Kiekis, dtype: int64
🔎 Daugiausia yra registruojama M1 kategorijos (lengvieji automobiliai) transporto priemonės.
transportas[transportas['Apskritis']=='VILNIAUS'][transportas['Kategorija']=='M1'].groupby('Pavadinimas')['Kiekis'].sum().sort_values(ascending=False)
C:\Users\Dell\AppData\Local\Temp\ipykernel_8124\2252289292.py:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index. transportas[transportas['Apskritis']=='VILNIAUS'][transportas['Kategorija']=='M1'].groupby('Pavadinimas')['Kiekis'].sum().sort_values(ascending=False)
Pavadinimas Dyzelinas 986078 Benzinas 527780 Benzinas / Elektra 107143 Benzinas / Dujos 80030 Elektra 18441 Benzinas / Elektra / Dujos 8444 Dyzelinas / Elektra 8180 NENUSTATYTA 6493 Benzinas / Etanolis 712 Benzinas / Gamtinės dujos 429 Gamtinės dujos 186 Benzinas / Etanolis / Dujos 114 Dujos 55 Dyzelinas / Dujos 11 Etanolis 7 Benzinas/Etanolis/Elektra 5 Benzinas / Gamtinės dujos / Elektra 5 Etanolis/Elektra 5 Gamtinės dujos / Dujos 4 Benzinas/Biometanas 3 Name: Kiekis, dtype: int64
🔎 Šioje M1 kategorijoje, didžiausią kiekį sudaro dyzeliu varomos transporto priemonės.
📈 Kaip kas met keitėsi M1 kategorijos dyzelinių transporto priemonių kiekiai Vilniaus apskrityje?
transportas[transportas['Apskritis']=='VILNIAUS'][transportas['Kategorija']=='M1'][transportas['Pavadinimas']=='Dyzelinas'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False).plot(marker='>', color='g')
plt.show()
C:\Users\Dell\AppData\Local\Temp\ipykernel_11588\869824325.py:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index. transportas[transportas['Apskritis']=='VILNIAUS'][transportas['Kategorija']=='M1'][transportas['Pavadinimas']=='Dyzelinas'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False).plot(marker='>', color='g') C:\Users\Dell\AppData\Local\Temp\ipykernel_11588\869824325.py:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index. transportas[transportas['Apskritis']=='VILNIAUS'][transportas['Kategorija']=='M1'][transportas['Pavadinimas']=='Dyzelinas'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False).plot(marker='>', color='g')
transportas[transportas['Apskritis']=='VILNIAUS'][transportas['Kategorija']=='M1'][transportas['Pavadinimas']=='Dyzelinas'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
C:\Users\Dell\AppData\Local\Temp\ipykernel_8124\204170751.py:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index. transportas[transportas['Apskritis']=='VILNIAUS'][transportas['Kategorija']=='M1'][transportas['Pavadinimas']=='Dyzelinas'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False) C:\Users\Dell\AppData\Local\Temp\ipykernel_8124\204170751.py:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index. transportas[transportas['Apskritis']=='VILNIAUS'][transportas['Kategorija']=='M1'][transportas['Pavadinimas']=='Dyzelinas'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
Metai 2024 274741 2023 273095 2022 270007 2021 98550 2020 69685 Name: Kiekis, dtype: int64
🔎 Matome, kad nepaisant taršos problemų, dyzelinių automobilių kiekis Lietuvoje sparčiai auga kasmet.
🔎 Pažiūrėkime visų savivaldybių dyzelinių M1 transporto priemonių augimą kas met.
dyzelinas=transportas[transportas['Kategorija']=='M1'][transportas['Pavadinimas']=='Dyzelinas'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
dyzelinas
C:\Users\Dell\AppData\Local\Temp\ipykernel_11588\3798099376.py:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index. dyzelinas=transportas[transportas['Kategorija']=='M1'][transportas['Pavadinimas']=='Dyzelinas'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
Metai 2024 1146313 2023 1130380 2022 1110160 2021 1095457 2020 1065830 Name: Kiekis, dtype: int64
dyzelinas.plot(marker='>', color='g')
plt.show()
📈 Visose savivaldybėse dyzelinių automobilių tik daugėja. Galima teigti, kad taršos mokesčio dydis Lietuvai rinktis taršias transporto priemones įtakos neturi.
🔎 Sukelkime mūsų duomenis į mySQL duomenų bazę.
from sqlalchemy import create_engine
my_db = create_engine('mysql://root:*******@localhost/new_schema')
transportas.to_sql('transportas', con=my_db, if_exists='replace', index = False)
14081
kategorijos.to_sql('kategorijos', con=my_db, if_exists='replace', index = False)
18
Išvados¶
🚗 Daugiausia transporto priemonių yra registruojama didžiuosiuose miestuose. Hipotezė pasitvirtino. Didžiausias registruojamų transporto priemonių kiekis yra Vilniaus miesto savivaldybėje.
🚗 Mažesniuose miestuose vyrauja taršesnės kuro rūšys. Nebūtinai. Galime ataskaitose kad praktiškai visuose savivaldybėse vyrauja taršiausia kuro rūšis - dyzelinas. Žmonės vis dar masiškai įsigyja dyzelinius automobilius, nepaisant taršos aplinkai.
🚗 Lietuvoje vis daugėja transporto priemonių su kuro kategorijomis iš 'žaliųjų' energijos šaltinių. Hipotezė pasitvirtino. Lyginant pastarūjų penkių metų duomenis, matome, kad kuro rūšies - 'elektra' kiekis kas met augo gan ženkliai. Nors vis dar didžiąją dalį sudaro dyzelinės transporto priemonės, po truputį į Lietuvos rinką atkeliauja ir aplinkai draugiškos.
transportas[transportas['Pavadinimas']=='Elektra'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
Metai 2024 21042 2023 15427 2022 11301 2021 6928 2020 3686 Name: Kiekis, dtype: int64
🚗 Lietuvoje didelį kiekį registruojant sudaro transporto priemonės, turinčios duomenų trūkumą. Tai problema ar sistemos klaida? Palyginus penkių metų duomenis, matome nemažai transporto priemonių kategorijų, kurių kažkuris rodiklis yra 'NENURODYTAS'. Šis kiekis taip pat stabiliai kyla. Šiuo klausimu diskutavome su AB Regitra atstovais ir paprašėme paaiškinti kodėl taip nutinka. Atsakymas gan paprastas. Dauguma transporto priemonių yra importuojamos iš svečių šalių. Visur yra skirtinigi reikalavimai. Jei transporto priemonei toje šalyje nebuvo privaloma nurodyti kuro rūšies ar registracijos vietos, lygiai taip pat šie kriterijai nebus nurodomi ir Lietuvoje, kadangi originaliuose transporto priemonės dokumentuose šios informacijos nėra. Ši situacija nemenkai iškraipo statistinius duomenis.
NENUSTATYTA=transportas[transportas['Pavadinimas']=='NENUSTATYTA'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
NENUSTATYTA
Metai 2024 256750 2023 248378 2022 234208 2021 218566 2020 201463 Name: Kiekis, dtype: int64
transportas[transportas['Pavadinimas']=='NENUSTATYTA'].groupby('Kategorija')['Kiekis'].sum().tail(4)
Kategorija O1 672175 O2 103788 O3 3380 O4 339553 Name: Kiekis, dtype: int64
🔎 Transporto priemonės, kurių kategorija yra 'O' - priekabos. Jos neįeina į šią statistiką.
O1=transportas[transportas['Kategorija']=='O1'][transportas['Pavadinimas']=='NENUSTATYTA'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
C:\Users\Dell\AppData\Local\Temp\ipykernel_11588\373884727.py:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index. O1=transportas[transportas['Kategorija']=='O1'][transportas['Pavadinimas']=='NENUSTATYTA'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
O2=transportas[transportas['Kategorija']=='O2'][transportas['Pavadinimas']=='NENUSTATYTA'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
C:\Users\Dell\AppData\Local\Temp\ipykernel_11588\2960482159.py:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index. O2=transportas[transportas['Kategorija']=='O2'][transportas['Pavadinimas']=='NENUSTATYTA'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
O3=transportas[transportas['Kategorija']=='O3'][transportas['Pavadinimas']=='NENUSTATYTA'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
C:\Users\Dell\AppData\Local\Temp\ipykernel_11588\1155589856.py:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index. O3=transportas[transportas['Kategorija']=='O3'][transportas['Pavadinimas']=='NENUSTATYTA'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
O4=transportas[transportas['Kategorija']=='O4'][transportas['Pavadinimas']=='NENUSTATYTA'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
C:\Users\Dell\AppData\Local\Temp\ipykernel_11588\912244284.py:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index. O4=transportas[transportas['Kategorija']=='O4'][transportas['Pavadinimas']=='NENUSTATYTA'].groupby('Metai')['Kiekis'].sum().sort_values(ascending=False)
PRIEKABOS=O1+O2+O3+O4
PRIEKABOS
Metai 2024 249341 2023 240360 2022 225836 2021 210411 2020 192948 Name: Kiekis, dtype: int64
NENUSTATYTA_IS_TIKRO=NENUSTATYTA-PRIEKABOS
NENUSTATYTA_IS_TIKRO
Metai 2024 7409 2023 8018 2022 8372 2021 8155 2020 8515 Name: Kiekis, dtype: int64
🔎 Vis dėl to, realus transporto priemonių su nenustatyta kuro rūšimi skaičius kas met nėra labai didelis ir jis kas met po truputį mažėja. Galima daryti prielaidą, kad Lietuva po truputį kontroliuoja tokių transporto priemonių importą.
Duomenų šaltiniai¶
♠ Transporto priemonių registracijos duomenys: https://www.regitra.lt/lt/paslaugos/duomenu-teikimas/statistika/transporto-priemones-2
♠ Įsakymas dėl kelių transporto priemonių registravimo taisyklių patvirtinimo: https://e-seimas.lrs.lt/portal/legalAct/lt/TAD/TAIS.136396
Pastabos¶
Duomenys apie transporto priemonių registravimą Lietuvoje nagrinėjami remiantis AB Regitra pateiktais atvirais duomenimis. Dėl duomenų trūkumo informacija gali būti netiksli.
Darbą atliko: Raminta Mačikūnienė, 2025