Darbą atliko: Agnė Šilkaitytė, 2024-11-07
from PIL import Image
from IPython.display import display
img = Image.open(r'C:\Users\AgnėŠilkaitytėFinanc\OneDrive - Finance United\Desktop\Kursai\Baigiamasis darbas\paveiksliukai\Empty_classroom.png')
new_size = (300, 280)
resized_img = img.resize(new_size)
display(resized_img)
Ši tema yra labai aktuali, nes pastaraisiais metais vis dažniau diskutuojama apie pedagogų trūkumą Lietuvoje. Žiniasklaidoje, portaluose ir kituose socialiniuose tinkluose nuolat iškeliamas klausimas dėl kvalifikuotų specialistų trūkumo. Ypač pabrėžiamas pedagogų išeinamumas į pensiją ir nepakankamas jaunų, kvalifikuotų pedagogų priėmimas į darbo rinką. Todėl, norint išsiaiškinti kaip ši problema gali vystytis ateityje ir kaip ją būtų galima spręsti, nusprendžiau atlikti šį tyrimą.
2024 metų straipsniai:
Pagrindinis tikslas įvertinti būsimą pedagogų poreikį Lietuvoje atsižvelgiant į demografinę situaciją, palyginti skirtumus tarp savivaldybių.
H1: Pedagogų skaičius Lietuvoje yra itin sumažėjęs, trūksta kvalifikuotų darbuotojų tuščioms darbo vietoms užpildyti.
H2: Kritinė riba dėl mokytojų trūkumo Lietuvoje bus pasiekta 30-ies metų tarpe.
H3: Aukščiausios kvalifikacijos mokytojų didžiausias kiekis yra didžiuosiuose Lietuvos miestuose.
Duomenys¶
Reikiamų bibliotekų importavimas:¶
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
Pasirinktų Lietuvos duomenų apie pedagogus importavimas:¶
Mokytojų amžius¶
Duomenys paimti iš čia: https://data.gov.lt/datasets/13/#info
amzius = pd.read_csv('mokytoju_amzius.csv', delimiter='\t')
amzius
Pd Mokslo metai | Pd Institucijos savivaldybės ID | Pd Institucijos savivaldybė | Pd Institucijos tipo ID | Pd Institucijos tipas | Pd Institucijos kodas | Pd Institucijos pavadinimas | Pd Darbovietės tipas ID | Pd Darbovietės tipas | Pd Pareigybė ID | Pd Pareigybė | Pd Amžiaus grupė | Pd Pedagogų skaičius | Pd Pensijinio amžiaus pedagogų sk. | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2012-2013 | 0 | NaN | NaN | NaN | 302833467 | NaN | 1 | Pagrindinė darbovietė | 55 | Treneris | 25-29 m. | 1 | 0 |
1 | 2012-2013 | 0 | NaN | NaN | NaN | 302833467 | NaN | 1 | Pagrindinė darbovietė | 55 | Treneris | Jaunesni nei 25 metai | 1 | 0 |
2 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 40-44 m. | 3 | 0 |
3 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 45-49 m. | 1 | 0 |
4 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 50-54 m. | 1 | 0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
442564 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 0 | Nepagrindinė darbovietė | 34 | Neformaliojo (papildomojo) ugdymo mokytojas (p... | 65 m. ir vyresni | 1 | 1 |
442565 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 1 | Pagrindinė darbovietė | 13 | Direktorius | 60-64 m. | 1 | 0 |
442566 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 1 | Pagrindinė darbovietė | 34 | Neformaliojo (papildomojo) ugdymo mokytojas (p... | 50-54 m. | 1 | 0 |
442567 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 1 | Pagrindinė darbovietė | 34 | Neformaliojo (papildomojo) ugdymo mokytojas (p... | 55-59 m. | 2 | 0 |
442568 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 1 | Pagrindinė darbovietė | 34 | Neformaliojo (papildomojo) ugdymo mokytojas (p... | 60-64 m. | 3 | 0 |
442569 rows × 14 columns
ilgis_amzius = len(amzius)
ilgis_amzius
442569
amzius.shape
(442569, 14)
amzius.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 442569 entries, 0 to 442568 Data columns (total 14 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Pd Mokslo metai 442569 non-null object 1 Pd Institucijos savivaldybės ID 442569 non-null int64 2 Pd Institucijos savivaldybė 442567 non-null object 3 Pd Institucijos tipo ID 442567 non-null float64 4 Pd Institucijos tipas 442567 non-null object 5 Pd Institucijos kodas 442569 non-null int64 6 Pd Institucijos pavadinimas 442567 non-null object 7 Pd Darbovietės tipas ID 442569 non-null int64 8 Pd Darbovietės tipas 442569 non-null object 9 Pd Pareigybė ID 442569 non-null int64 10 Pd Pareigybė 442569 non-null object 11 Pd Amžiaus grupė 442569 non-null object 12 Pd Pedagogų skaičius 442569 non-null int64 13 Pd Pensijinio amžiaus pedagogų sk. 442569 non-null int64 dtypes: float64(1), int64(6), object(7) memory usage: 47.3+ MB
Lengvesniam darbui pašaliniamas 'Pd' žodis iš stulpelių pavadinimų ir tušti duomenys iš 'Institucijos savivaldybė':
amzius.columns = amzius.columns.str.replace('^Pd ', '', regex=True)
amzius.dropna(subset=['Institucijos savivaldybė'], inplace=True)
amzius
Mokslo metai | Institucijos savivaldybės ID | Institucijos savivaldybė | Institucijos tipo ID | Institucijos tipas | Institucijos kodas | Institucijos pavadinimas | Darbovietės tipas ID | Darbovietės tipas | Pareigybė ID | Pareigybė | Amžiaus grupė | Pedagogų skaičius | Pensijinio amžiaus pedagogų sk. | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 40-44 m. | 3 | 0 |
3 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 45-49 m. | 1 | 0 |
4 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 50-54 m. | 1 | 0 |
5 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 55-59 m. | 2 | 0 |
6 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 65 m. ir vyresni | 1 | 1 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
442564 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 0 | Nepagrindinė darbovietė | 34 | Neformaliojo (papildomojo) ugdymo mokytojas (p... | 65 m. ir vyresni | 1 | 1 |
442565 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 1 | Pagrindinė darbovietė | 13 | Direktorius | 60-64 m. | 1 | 0 |
442566 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 1 | Pagrindinė darbovietė | 34 | Neformaliojo (papildomojo) ugdymo mokytojas (p... | 50-54 m. | 1 | 0 |
442567 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 1 | Pagrindinė darbovietė | 34 | Neformaliojo (papildomojo) ugdymo mokytojas (p... | 55-59 m. | 2 | 0 |
442568 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 1 | Pagrindinė darbovietė | 34 | Neformaliojo (papildomojo) ugdymo mokytojas (p... | 60-64 m. | 3 | 0 |
442567 rows × 14 columns
Pašalintų eil. sk:
ilgis_amzius - len(amzius)
2
Pedagogų kvalifikacija¶
Duomenys paimti iš čia: https://data.gov.lt/datasets/12/
kvalif = pd.read_csv('pedagogu_kvalifikacija.csv', delimiter='\t')
kvalif
Pd Mokslo metai | Pd Institucijos savivaldybės ID | Pd Institucijos savivaldybė | Pd Pareigų grupė ID | Pd Pareigų grupė | Pd Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia) | Pd Pedagogų skaičius | |
---|---|---|---|---|---|---|---|
0 | 2012-2013 | 0 | NaN | 42 | Mokytojai | Mokytojas | 1 |
1 | 2012-2013 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Auklėtojas metodininkas | 1 |
2 | 2012-2013 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Specialusis pedagogas metodininkas | 1 |
3 | 2012-2013 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Vyresnysis auklėtojas | 1 |
4 | 2012-2013 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Vyresnysis specialusis pedagogas (auklėtojas) | 1 |
... | ... | ... | ... | ... | ... | ... | ... |
69278 | 2024-2025 | 403 | Zarasų r. sav. | 9 | Specialieji pedagogai | Specialusis pedagogas metodininkas | 1 |
69279 | 2024-2025 | 403 | Zarasų r. sav. | 9 | Specialieji pedagogai | Vyresnysis specialusis pedagogas | 1 |
69280 | 2024-2025 | 403 | Zarasų r. sav. | 2 | Vadovo pavaduotojai ugdymo reikalams | Mokytojas | 1 |
69281 | 2024-2025 | 403 | Zarasų r. sav. | 2 | Vadovo pavaduotojai ugdymo reikalams | Mokytojas metodininkas | 4 |
69282 | 2024-2025 | 403 | Zarasų r. sav. | 2 | Vadovo pavaduotojai ugdymo reikalams | Vyresnysis mokytojas | 1 |
69283 rows × 7 columns
ilgis_kvalif = len(kvalif)
ilgis_kvalif
69283
kvalif.shape
(69283, 7)
kvalif.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 69283 entries, 0 to 69282 Data columns (total 7 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Pd Mokslo metai 69283 non-null object 1 Pd Institucijos savivaldybės ID 69283 non-null int64 2 Pd Institucijos savivaldybė 69282 non-null object 3 Pd Pareigų grupė ID 69283 non-null int64 4 Pd Pareigų grupė 69283 non-null object 5 Pd Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia) 69283 non-null object 6 Pd Pedagogų skaičius 69283 non-null int64 dtypes: int64(3), object(4) memory usage: 3.7+ MB
Lengvesniam darbui pašaliniamas 'Pd' žodis iš stulpelių pavadinimų ir tušti duomenys iš 'Institucijos savivaldybė':
kvalif.columns = kvalif.columns.str.replace('^Pd ', '', regex=True)
kvalif.dropna(subset=['Institucijos savivaldybė'],inplace=True)
kvalif.head()
Mokslo metai | Institucijos savivaldybės ID | Institucijos savivaldybė | Pareigų grupė ID | Pareigų grupė | Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia) | Pedagogų skaičius | |
---|---|---|---|---|---|---|---|
1 | 2012-2013 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Auklėtojas metodininkas | 1 |
2 | 2012-2013 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Specialusis pedagogas metodininkas | 1 |
3 | 2012-2013 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Vyresnysis auklėtojas | 1 |
4 | 2012-2013 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Vyresnysis specialusis pedagogas (auklėtojas) | 1 |
5 | 2012-2013 | 260 | Akmenės r. sav. | 29 | Direktoriaus pavaduotojai ugdymui | Auklėtojas metodininkas | 1 |
Pašalintų eil. sk:
ilgis_kvalif - len(kvalif)
1
Mokytojų, dirbančių ne vienoje mokykloje, skaičius pagal savivaldybes¶
Duomenys paimti iš čia: https://data.gov.lt/datasets/359/
kelios_darb = pd.read_csv('mokytoju_dirbanciu_ne_vienoje_mokykloje_skaicius.csv', delimiter='\t')
kelios_darb
Pd Mokslo metai | Pd Institucijos savivaldybės ID | Pd Institucijos savivaldybė | Pd Mokytojų skaičius | Pd Mokytojų, dirbančių ne vienoje mokykloje, skaičius | |
---|---|---|---|---|---|
0 | 2012-2013 | 260 | Akmenės r. sav. | 263 | 94 |
1 | 2012-2013 | 2 | Alytaus m. sav. | 683 | 223 |
2 | 2012-2013 | 4 | Alytaus r. sav. | 300 | 138 |
3 | 2012-2013 | 393 | Anykščių r. sav. | 314 | 124 |
4 | 2012-2013 | 42 | Birštono sav. | 56 | 20 |
... | ... | ... | ... | ... | ... |
775 | 2024-2025 | 163 | Vilkaviškio r. sav. | 346 | 240 |
776 | 2024-2025 | 461 | Vilniaus m. sav. | 6054 | 1721 |
777 | 2024-2025 | 462 | Vilniaus r. sav. | 1075 | 684 |
778 | 2024-2025 | 459 | Visagino sav. | 173 | 50 |
779 | 2024-2025 | 403 | Zarasų r. sav. | 109 | 45 |
780 rows × 5 columns
ilgis_kelios_darb = len(kelios_darb)
ilgis_kelios_darb
780
kelios_darb.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 780 entries, 0 to 779 Data columns (total 5 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Pd Mokslo metai 780 non-null object 1 Pd Institucijos savivaldybės ID 780 non-null int64 2 Pd Institucijos savivaldybė 780 non-null object 3 Pd Mokytojų skaičius 780 non-null int64 4 Pd Mokytojų, dirbančių ne vienoje mokykloje, skaičius 780 non-null int64 dtypes: int64(3), object(2) memory usage: 30.6+ KB
Lengvesniam darbui pašaliniamas 'Pd' žodis iš stulpelių pavadinimų ir tušti duomenys iš 'Institucijos savivaldybė':
kelios_darb.columns = kelios_darb.columns.str.replace('^Pd ', '', regex=True)
kelios_darb.dropna(subset=['Institucijos savivaldybė'],inplace=True)
kelios_darb.head()
Mokslo metai | Institucijos savivaldybės ID | Institucijos savivaldybė | Mokytojų skaičius | Mokytojų, dirbančių ne vienoje mokykloje, skaičius | |
---|---|---|---|---|---|
0 | 2012-2013 | 260 | Akmenės r. sav. | 263 | 94 |
1 | 2012-2013 | 2 | Alytaus m. sav. | 683 | 223 |
2 | 2012-2013 | 4 | Alytaus r. sav. | 300 | 138 |
3 | 2012-2013 | 393 | Anykščių r. sav. | 314 | 124 |
4 | 2012-2013 | 42 | Birštono sav. | 56 | 20 |
Pašalintų eil. sk:
ilgis_kelios_darb - len(kelios_darb)
0
Duomenų analizė¶
Duomenų lyginimas (savivaldybių skaičiaus)¶
Išvardintos savivaldybės:
# Iš amžiaus dataframe:
savivaldyb_unique = amzius['Institucijos savivaldybė'].unique()
savivaldyb = tuple(value for value in savivaldyb_unique)
savivaldyb
('Akmenės r. sav.', 'Alytaus m. sav.', 'Alytaus r. sav.', 'Anykščių r. sav.', 'Birštono sav.', 'Biržų r. sav.', 'Druskininkų sav.', 'Elektrėnų sav.', 'Ignalinos r. sav.', 'Jonavos r. sav.', 'Joniškio r. sav.', 'Jurbarko r. sav.', 'Kaišiadorių r. sav.', 'Kalvarijos sav.', 'Kauno m. sav.', 'Kauno r. sav.', 'Kazlų Rūdos sav.', 'Kėdainių r. sav.', 'Kelmės r. sav.', 'Klaipėdos m. sav.', 'Klaipėdos r. sav.', 'Kretingos r. sav.', 'Kupiškio r. sav.', 'Lazdijų r. sav.', 'Marijampolės sav.', 'Mažeikių r. sav.', 'Molėtų r. sav.', 'Neringos sav.', 'Pagėgių sav.', 'Pakruojo r. sav.', 'Palangos m. sav.', 'Panevėžio m. sav.', 'Panevėžio r. sav.', 'Pasvalio r. sav.', 'Plungės r. sav.', 'Prienų r. sav.', 'Radviliškio r. sav.', 'Raseinių r. sav.', 'Rietavo sav.', 'Rokiškio r. sav.', 'Šakių r. sav.', 'Šalčininkų r. sav.', 'Šiaulių m. sav.', 'Šiaulių r. sav.', 'Šilalės r. sav.', 'Šilutės r. sav.', 'Širvintų r. sav.', 'Skuodo r. sav.', 'Švenčionių r. sav.', 'Tauragės r. sav.', 'Telšių r. sav.', 'Trakų r. sav.', 'Ukmergės r. sav.', 'Utenos r. sav.', 'Varėnos r. sav.', 'Vilkaviškio r. sav.', 'Vilniaus m. sav.', 'Vilniaus r. sav.', 'Visagino sav.', 'Zarasų r. sav.')
type(savivaldyb)
tuple
len(savivaldyb)
60
# Iš kvalifikacijų dataframe:
savivaldyb1 = set(kvalif['Institucijos savivaldybė'])
savivaldyb1
{'Akmenės r. sav.', 'Alytaus m. sav.', 'Alytaus r. sav.', 'Anykščių r. sav.', 'Birštono sav.', 'Biržų r. sav.', 'Druskininkų sav.', 'Elektrėnų sav.', 'Ignalinos r. sav.', 'Jonavos r. sav.', 'Joniškio r. sav.', 'Jurbarko r. sav.', 'Kaišiadorių r. sav.', 'Kalvarijos sav.', 'Kauno m. sav.', 'Kauno r. sav.', 'Kazlų Rūdos sav.', 'Kelmės r. sav.', 'Klaipėdos m. sav.', 'Klaipėdos r. sav.', 'Kretingos r. sav.', 'Kupiškio r. sav.', 'Kėdainių r. sav.', 'Lazdijų r. sav.', 'Marijampolės sav.', 'Mažeikių r. sav.', 'Molėtų r. sav.', 'Neringos sav.', 'Pagėgių sav.', 'Pakruojo r. sav.', 'Palangos m. sav.', 'Panevėžio m. sav.', 'Panevėžio r. sav.', 'Pasvalio r. sav.', 'Plungės r. sav.', 'Prienų r. sav.', 'Radviliškio r. sav.', 'Raseinių r. sav.', 'Rietavo sav.', 'Rokiškio r. sav.', 'Skuodo r. sav.', 'Tauragės r. sav.', 'Telšių r. sav.', 'Trakų r. sav.', 'Ukmergės r. sav.', 'Utenos r. sav.', 'Varėnos r. sav.', 'Vilkaviškio r. sav.', 'Vilniaus m. sav.', 'Vilniaus r. sav.', 'Visagino sav.', 'Zarasų r. sav.', 'Šakių r. sav.', 'Šalčininkų r. sav.', 'Šiaulių m. sav.', 'Šiaulių r. sav.', 'Šilalės r. sav.', 'Šilutės r. sav.', 'Širvintų r. sav.', 'Švenčionių r. sav.'}
len(savivaldyb1)
60
Patikrinimas, kad savivaldybių kiekis vienodas skirtinguose lentelėse:
len(savivaldyb1)==len(savivaldyb)
True
H1 Hipotezė¶
Patikrinta, kuroje lentelėje turime didžiausią kiekį pedagogų¶
kvalif['Pedagogų skaičius'].sum() < amzius['Pedagogų skaičius'].sum() > kelios_darb['Mokytojų skaičius'].sum()
True
kvalif['Pedagogų skaičius'].sum()
717879
amzius['Pedagogų skaičius'].sum()
878041
kelios_darb['Mokytojų skaičius'].sum()
391278
Iškeliama tarpinė hipotezė¶
Todėl buvo pasirinkta pedagogų skaičiaus kaitą pagal metus ieškoti su 'amzius' lentele.
Amziaus lentelės nagrinėjimas¶
# Išsifiltruojame tik reikiamus duomenis (metus ir bendrą pedagogų sk.) iš amžiaus dataframe:
mokytoju_sk_per_metus_amzius = amzius.groupby('Mokslo metai')['Pedagogų skaičius'].sum().reset_index()
mokytoju_sk_per_metus_amzius = mokytoju_sk_per_metus_amzius.sort_values(by='Mokslo metai')
mokytoju_sk_per_metus_amzius
Mokslo metai | Pedagogų skaičius | |
---|---|---|
0 | 2012-2013 | 69442 |
1 | 2013-2014 | 68849 |
2 | 2014-2015 | 68423 |
3 | 2015-2016 | 68987 |
4 | 2016-2017 | 67800 |
5 | 2017-2018 | 67015 |
6 | 2018-2019 | 65714 |
7 | 2019-2020 | 65373 |
8 | 2020-2021 | 64871 |
9 | 2021-2022 | 64329 |
10 | 2022-2023 | 64820 |
11 | 2023-2024 | 71002 |
12 | 2024-2025 | 71416 |
# Nusibraižome grafiką su amžiaus dataframe
plt.figure(figsize=(7, 5))
plt.plot(mokytoju_sk_per_metus_amzius['Mokslo metai'], mokytoju_sk_per_metus_amzius['Pedagogų skaičius'], marker='o', linestyle='-')
plt.xlabel('Mokslo metai')
plt.ylabel('Mokytojų skaičius')
plt.title('Mokytojų skaičiaus mažėjimo tendencija')
plt.xticks(rotation=45) # pasuka metų etiketes, kad jos būtų lengviau skaitomos
plt.grid(True)
plt.show()
Pastebėjusi, kad paskutinius dvejus mokslo metus mokytojų skaičius žymiai išaugęs, nuspredžiau patikrinti pedagogų skaičiaus pokyti su kitais turimais duomenimis:
Kitų duomenų lentelių nagrinėjimas¶
'kvalf' lentelė:
# Išsifiltruojame tik reikiamus duomenis (metus ir bendrą pedagogų sk.) iš kvalifikacijos dataframe:
mokytoju_sk_per_metus_kvalif = kvalif.groupby('Mokslo metai')['Pedagogų skaičius'].sum().reset_index()
mokytoju_sk_per_metus_kvalif = mokytoju_sk_per_metus_kvalif.sort_values(by='Mokslo metai')
mokytoju_sk_per_metus_kvalif
Mokslo metai | Pedagogų skaičius | |
---|---|---|
0 | 2012-2013 | 61705 |
1 | 2013-2014 | 61122 |
2 | 2014-2015 | 60210 |
3 | 2015-2016 | 59414 |
4 | 2016-2017 | 57727 |
5 | 2017-2018 | 55826 |
6 | 2018-2019 | 53702 |
7 | 2019-2020 | 52850 |
8 | 2020-2021 | 52535 |
9 | 2021-2022 | 52088 |
10 | 2022-2023 | 51312 |
11 | 2023-2024 | 50805 |
12 | 2024-2025 | 48583 |
'kelios_darb' lentelė:
# Išsifiltruojame tik reikiamus duomenis (metus ir bendrą pedagogų sk.) iš kelios_darb dataframe:
mokytoju_sk_per_metus_kelios_darb = kelios_darb.groupby('Mokslo metai')['Mokytojų skaičius'].sum().reset_index()
mokytoju_sk_per_metus_kelios_darb = mokytoju_sk_per_metus_kelios_darb.sort_values(by='Mokslo metai')
mokytoju_sk_per_metus_kelios_darb
Mokslo metai | Mokytojų skaičius | |
---|---|---|
0 | 2012-2013 | 34559 |
1 | 2013-2014 | 33612 |
2 | 2014-2015 | 32582 |
3 | 2015-2016 | 31808 |
4 | 2016-2017 | 30682 |
5 | 2017-2018 | 29877 |
6 | 2018-2019 | 29196 |
7 | 2019-2020 | 28905 |
8 | 2020-2021 | 28334 |
9 | 2021-2022 | 27993 |
10 | 2022-2023 | 28203 |
11 | 2023-2024 | 28170 |
12 | 2024-2025 | 27357 |
Nusibraižome visus tris grafikus palyginimui:
fig, ax = plt.subplots(3, 1, figsize=(8, 6), sharex=True) # grafikai eis trim eilutėm ir vienu stulpeliu sharex
# Plot 1: `mokytoju_sk_per_metus_amzius`
ax[0].plot(mokytoju_sk_per_metus_amzius['Mokslo metai'], mokytoju_sk_per_metus_amzius['Pedagogų skaičius'], color='red')
ax[0].set_title('Pedagogų skaičius per metus (amžius dataframe)')
ax[0].set_ylabel('Pedagogų skaičius')
# Plot 2: `mokytoju_sk_per_metus_kvalif`
ax[1].plot(mokytoju_sk_per_metus_kvalif['Mokslo metai'], mokytoju_sk_per_metus_kvalif['Pedagogų skaičius'], color='pink')
ax[1].set_title('Pedagogų skaičius per metus (kvalifikacija dataframe)')
ax[1].set_ylabel('Pedagogų skaičius')
# Plot 3: `mokytoju_sk_per_metus_kelios_darb`
ax[2].plot(mokytoju_sk_per_metus_kelios_darb['Mokslo metai'], mokytoju_sk_per_metus_kelios_darb['Mokytojų skaičius'], color='purple')
ax[2].set_title('Mokytojų skaičius per metus (kelios_darb dataframe)')
ax[2].set_ylabel('Mokytojų skaičius')
# Setting shared x-axis label
ax[2].set_xlabel('Metai')
# Adjust layout to prevent overlap
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
Iš grafikų matome, kad iškelta tarpinė hipotezė pasitvirtino, mat kiti du grafikai rodo aiškų mokytojų mažėjimą Lietuvoje.
Ieškome pirmojo grafiko prieaugio kaltininko¶
Lengvesniam darbui susikuriame papildomą 'Pradzios_metai' stulpelį, į kurį išsitraukiame mokslo metų pradžią.
amzius['Pradzios_metai'] = amzius['Mokslo metai'].str[:4].astype(int)
amzius
Mokslo metai | Institucijos savivaldybės ID | Institucijos savivaldybė | Institucijos tipo ID | Institucijos tipas | Institucijos kodas | Institucijos pavadinimas | Darbovietės tipas ID | Darbovietės tipas | Pareigybė ID | Pareigybė | Amžiaus grupė | Pedagogų skaičius | Pensijinio amžiaus pedagogų sk. | Pradzios_metai | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 40-44 m. | 3 | 0 | 2012 |
3 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 45-49 m. | 1 | 0 | 2012 |
4 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 50-54 m. | 1 | 0 | 2012 |
5 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 55-59 m. | 2 | 0 | 2012 |
6 | 2012-2013 | 260 | Akmenės r. sav. | 3111.0 | Ikimokyklinio ugdymo mokykla | 190441020 | Akmenės rajono Akmenės vaikų lopšelis - daržel... | 1 | Pagrindinė darbovietė | 2 | Auklėtojas | 65 m. ir vyresni | 1 | 1 | 2012 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
442564 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 0 | Nepagrindinė darbovietė | 34 | Neformaliojo (papildomojo) ugdymo mokytojas (p... | 65 m. ir vyresni | 1 | 1 | 2024 |
442565 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 1 | Pagrindinė darbovietė | 13 | Direktorius | 60-64 m. | 1 | 0 | 2024 |
442566 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 1 | Pagrindinė darbovietė | 34 | Neformaliojo (papildomojo) ugdymo mokytojas (p... | 50-54 m. | 1 | 0 | 2024 |
442567 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 1 | Pagrindinė darbovietė | 34 | Neformaliojo (papildomojo) ugdymo mokytojas (p... | 55-59 m. | 2 | 0 | 2024 |
442568 | 2024-2025 | 403 | Zarasų r. sav. | 3161.0 | Neformaliojo vaikų švietimo mokykla ir formalų... | 190212235 | Zarasų sporto centras | 1 | Pagrindinė darbovietė | 34 | Neformaliojo (papildomojo) ugdymo mokytojas (p... | 60-64 m. | 3 | 0 | 2024 |
442567 rows × 15 columns
Ieškome naujai atsiradusių pareigų¶
# Sukuriame išfiltruotą duomenų rinkinį, pasirinkdami 2021 metų duomenis, nes tais metais buvo pasiektas mažiausias pedagogų skaičius.
# Ir išspausdiname visas unikalias 'Pareigybė ID' reikšmes.
amziaus_filtered_2021_2022 = amzius[amzius['Pradzios_metai'] == 2021]
unique_2021_2022 = amziaus_filtered_2021_2022['Pareigybė ID'].unique()
unique_2021_2022
array([84, 13, 23, 24, 26, 46, 85, 30, 5, 50, 34, 2, 12, 18, 51, 16, 27, 48, 53, 67, 68, 61, 56, 43, 64, 39, 55, 41, 17, 6, 31, 57, 38, 10, 87, 32, 7, 35, 25, 66, 54, 44, 86, 63, 20], dtype=int64)
# Sukuriame išfiltruotą duomenų rinkinį, pasirinkdami 2023 metų duomenis, nes tais metais buvo pasiektas didžiausias pedagogų skaičius
# Ir išspausdiname visas unikalias 'Pareigybė ID' reikšmes.
amziaus_filtered_2023_2024 = amzius[amzius['Pradzios_metai'] == 2023]
unique_2023_2024 = amziaus_filtered_2023_2024['Pareigybė ID'].unique()
unique_2023_2024
array([ 84, 13, 23, 24, 26, 20001, 46, 85, 48, 50, 30, 5, 34, 12, 27, 51, 86, 61, 31, 16, 57, 91, 2, 68, 56, 6, 64, 43, 55, 17, 25, 35, 38, 39, 10, 87, 32, 7, 66, 53, 44, 63, 90, 54, 67, 18, 20], dtype=int64)
# Ieškome skirtumų tarp išsifiltruotų duomenų rinkinių unikalių reikšmių, t.y. ar atsirado naujų pareigybių:
diff_2021_2022_only = set(unique_2021_2022) - set(unique_2023_2024)
diff_2023_2024_only = set(unique_2023_2024) - set(unique_2021_2022)
print("Tik 2023-2024 m. 'Pareigybė ID' reikšmės:", diff_2023_2024_only)
Tik 2023-2024 m. 'Pareigybė ID' reikšmės: {20001, 90, 91}
Surandame išspausdintų pareigybių pavadinimus:
pareigybė = amzius[amzius['Pareigybė ID'] == 20001]['Pareigybė'].iloc[0]
print(f"Pareigybė su ID 20001: {pareigybė}")
Pareigybė su ID 20001: Mokytojo padėjėjas
pareigybė = amzius[amzius['Pareigybė ID'] == 90]['Pareigybė'].iloc[0]
print(f"Pareigybė su ID 90: {pareigybė}")
Pareigybė su ID 90: Lietuvių kalbos (valstybinės) mokytojas
pareigybė = amzius[amzius['Pareigybė ID'] == 91]['Pareigybė'].iloc[0]
print(f"Pareigybė su ID 91: {pareigybė}")
Pareigybė su ID 91: Fizinio ugdymo mokytojas
# Paskaičiuojame jų kiekį:
amzius[amzius['Pareigybė ID'].isin([20001, 90, 91])]['Pareigybė ID'].count()
6135
Ieškome amžiaus skirtumo prieaugio tarp 2021-2023¶
Dabar peržvelkime amžiaus pokyčius tarp 2021 ir 2023 metų, patikrindami galimybę, kad pedagogo karjeros kelią pradėjo didelis kiekis studentų.
# 2021 metų amžiaus grupės
count_2021_2022 = amziaus_filtered_2021_2022.groupby('Amžiaus grupė')['Amžiaus grupė'].count()
count_2021_2022
Amžiaus grupė 25-29 m. 1863 30-34 m. 2736 35-39 m. 3426 40-44 m. 3838 45-49 m. 4341 50-54 m. 4962 55-59 m. 4537 60-64 m. 4250 65 m. ir vyresni 1881 Jaunesni nei 25 metai 836 Name: Amžiaus grupė, dtype: int64
# 2023 metų amžiaus grupės
count_2023_2024 = amziaus_filtered_2023_2024.groupby('Amžiaus grupė')['Amžiaus grupė'].count()
count_2023_2024
Amžiaus grupė 25-29 m. 1943 30-34 m. 3015 35-39 m. 4111 40-44 m. 4336 45-49 m. 4752 50-54 m. 5197 55-59 m. 5090 60-64 m. 4607 65 m. ir vyresni 2703 Jaunesni nei 25 metai 1118 Name: Amžiaus grupė, dtype: int64
#Skirtumas tarp amžiaus grupių:
difference = count_2021_2022 - count_2023_2024
difference
Amžiaus grupė 25-29 m. -80 30-34 m. -279 35-39 m. -685 40-44 m. -498 45-49 m. -411 50-54 m. -235 55-59 m. -553 60-64 m. -357 65 m. ir vyresni -822 Jaunesni nei 25 metai -282 Name: Amžiaus grupė, dtype: int64
Hipotezės rezultatas¶
Tarpinei hipotezei nepasitvirtinus, jog 'amziaus' lentelė rodys tikliausią rezulatą, buvo nubraižyti amžiaus pokyčio per metus grafikai su kitais turimais duomenimis ('kvalif', 'kelios_darb'). Papildomi grafikai parodė tolygų pedagogų mažėjimą tarp abiejų grafikų.
Tuomet buvo ieškoma, kodėl naudojant 'amzius' lentelę grafike matėsi didelis pedagogų sk. prieaugis nuo 2021-2022 mokslo metų. Prieita prie išvados, kad 'amzius' lentelėje atsirado papildomos pareigos, kaip 'Mokytojo padėjėjas', dėl kurių prieaugis iššoko apie 6000. Ir taipogi padidėjo jaunų mokytojų skaičius (iki 30 m.) (apie 400). Taip pat galime daryti prielaidą, kad jaunų mokytojų sk. nuo 2022 išaugo dėl studentams pradėtų teikti stipendijų:
Taigi galiu prieti prie išvados, kad 'amzius' duomenų bazė nuo 2021 metų buvo atnaujinta ir pradėta kaupti kitokiu principu ir šiam palyginimui 'amzius' lentelė yra netinkama.
Apibendrinant galima teigti, jog analizuojant 'kvalif' ir 'kelios_darb' duomenų bazes pastebimas reikšmingas pedagogų skaičiaus mažėjimas nuo 2012 metų. Tai leidžia daryti prielaidą, kad šiuo metu šalyje priartėjome prie galimo pedagogų trūkumo.
H2 hipotezė¶
Kritinė riba dėl mokytojų trūkumo Lietuvoje bus pasiekta 30-ies metų tarpe.
# Naudojame jau sukurtą lentelę:
mokytoju_sk_per_metus_kvalif
Mokslo metai | Pedagogų skaičius | |
---|---|---|
0 | 2012-2013 | 61705 |
1 | 2013-2014 | 61122 |
2 | 2014-2015 | 60210 |
3 | 2015-2016 | 59414 |
4 | 2016-2017 | 57727 |
5 | 2017-2018 | 55826 |
6 | 2018-2019 | 53702 |
7 | 2019-2020 | 52850 |
8 | 2020-2021 | 52535 |
9 | 2021-2022 | 52088 |
10 | 2022-2023 | 51312 |
11 | 2023-2024 | 50805 |
12 | 2024-2025 | 48583 |
# Pridedame pagalbinį indentifikacinį metų stulpelį
mokytoju_sk_per_metus_kvalif['Metai'] = mokytoju_sk_per_metus_kvalif['Mokslo metai'].apply(lambda x: int(x.split('-')[0]))
mokytoju_sk_per_metus_kvalif
Mokslo metai | Pedagogų skaičius | Metai | |
---|---|---|---|
0 | 2012-2013 | 61705 | 2012 |
1 | 2013-2014 | 61122 | 2013 |
2 | 2014-2015 | 60210 | 2014 |
3 | 2015-2016 | 59414 | 2015 |
4 | 2016-2017 | 57727 | 2016 |
5 | 2017-2018 | 55826 | 2017 |
6 | 2018-2019 | 53702 | 2018 |
7 | 2019-2020 | 52850 | 2019 |
8 | 2020-2021 | 52535 | 2020 |
9 | 2021-2022 | 52088 | 2021 |
10 | 2022-2023 | 51312 | 2022 |
11 | 2023-2024 | 50805 | 2023 |
12 | 2024-2025 | 48583 | 2024 |
# Aprašome modelio X ir y reikšmes:
X = mokytoju_sk_per_metus_kvalif['Metai'].values.reshape(-1, 1)
y = mokytoju_sk_per_metus_kvalif['Pedagogų skaičius'].values
# Prtaikome polinominę regresiją:
poly_reg = PolynomialFeatures(degree=2)
X_poly = poly_reg.fit_transform(X)
pol_reg = LinearRegression()
pol_reg.fit(X_poly, y)
LinearRegression()In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
LinearRegression()
# Ją atvaizduojame grafike:
def viz_polynomial():
# Pavaizduojame originalius duomenis
plt.scatter(X, y, color='red')
# Pavaizduojame polinominę regresiją
plt.plot(X, pol_reg.predict(poly_reg.fit_transform(X)), color='blue')
plt.xlabel('Mokslo metai')
plt.ylabel('Pedagogų skaičius')
plt.title('Polinominė regresija: Pedagogų skaičius pagal metus')
plt.show()
viz_polynomial()
# Ieškome, kuriais metais bus pasiekta kritinė riba, ją laikome 45 000:
pol_reg.predict(poly_reg.fit_transform([[2040]]))
array([44002.07892118])
pol_reg.predict(poly_reg.fit_transform([[2027]]))
array([47138.15684292])
pol_reg.predict(poly_reg.fit_transform([[2028]]))
array([46562.26873103])
pol_reg.predict(poly_reg.fit_transform([[2031]]))
array([45169.25574405])
pol_reg.predict(poly_reg.fit_transform([[2032]]))
array([44816.46853125])
Išvados:¶
Šie rezultatai patvirtina hipotezę, jog Lietuvos mokytojų skaičius kritinę ribą gali pasiekti per 30 metų. Modelis rodo, kad kritinis pedagogų skaičius 45000 bus peržengtas iki 2031 m., o mažėjimo tendencija tęsis ir po to. Tai rodo, kad jei nesikeis dabartinės tendencijos, jau po kelerių metų Lietuva gali susidurti su pedagogų trūkumo problema.
H3 hipotezė¶
Aukščiausios kvalifikacijos mokytojų didžiausias kiekis yra didžiuosiuose Lietuvos miestuose.
Lygių paskisrtymas¶
# Naudosime kvalifikacijos duomenis išsifiltrave 2024-2025 metus (metus galime pakeisti):
# Jei norime pamatyti visų metų (nuo 2012 iki 2024 mokslo metų) rezultatus šią kodo dalį praleidžiame:
pasirinkti_metai = '2024-2025'
kvalif = kvalif[kvalif['Mokslo metai']== pasirinkti_metai]
kvalif
Mokslo metai | Institucijos savivaldybės ID | Institucijos savivaldybė | Pareigų grupė ID | Pareigų grupė | Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia) | Pedagogų skaičius | |
---|---|---|---|---|---|---|---|
63910 | 2024-2025 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Mokytojas | 1 |
63911 | 2024-2025 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Mokytojas metodininkas | 1 |
63912 | 2024-2025 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Vyresnysis mokytojas | 1 |
63913 | 2024-2025 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Vyresnysis specialusis pedagogas | 2 |
63914 | 2024-2025 | 260 | Akmenės r. sav. | 28 | Direktorius | Mokytojas | 1 |
... | ... | ... | ... | ... | ... | ... | ... |
69278 | 2024-2025 | 403 | Zarasų r. sav. | 9 | Specialieji pedagogai | Specialusis pedagogas metodininkas | 1 |
69279 | 2024-2025 | 403 | Zarasų r. sav. | 9 | Specialieji pedagogai | Vyresnysis specialusis pedagogas | 1 |
69280 | 2024-2025 | 403 | Zarasų r. sav. | 2 | Vadovo pavaduotojai ugdymo reikalams | Mokytojas | 1 |
69281 | 2024-2025 | 403 | Zarasų r. sav. | 2 | Vadovo pavaduotojai ugdymo reikalams | Mokytojas metodininkas | 4 |
69282 | 2024-2025 | 403 | Zarasų r. sav. | 2 | Vadovo pavaduotojai ugdymo reikalams | Vyresnysis mokytojas | 1 |
5373 rows × 7 columns
#Patikriname kiek turime skirtingų kvalifikacijos kategrojų
len(kvalif['Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia)'].unique())
49
kvalif['Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia)'].unique()
array(['Mokytojas', 'Mokytojas metodininkas', 'Vyresnysis mokytojas', 'Vyresnysis specialusis pedagogas', 'Auklėtojas', 'Auklėtojas metodininkas', 'Vyresnysis auklėtojas', 'Vyresnysis socialinis pedagogas', 'Socialinis pedagogas', 'Mokytojas ekspertas', 'Logopedas metodininkas', 'Vyresnysis logopedas', 'Logopedas', 'Specialusis pedagogas metodininkas', 'Koncertmeisteris metodininkas', 'Vyresnysis koncertmeisteris', 'Koncertmeisteris', 'III psichologo kvalifikacinė kategorija', 'IV psichologo kvalifikacinė kategorija', 'Socialinis pedagogas metodininkas', 'Profesijos mokytojas metodininkas', 'Papildomojo ugdymo pedagogas metodininkas', 'Vyresnysis profesijos mokytojas', 'Profesijos mokytojas', 'Pirma trenerio kvalifikacinė kategorija', 'Vyresnysis papildomojo ugdymo pedagogas', 'Papildomojo ugdymo pedagogas', 'Papildomojo ugdymo pedagogas ekspertas', 'Profesijos mokytojas ekspertas', 'II psichologo kvalifikacinė kategorija', 'Specialusis pedagogas ekspertas', 'Socialinis pedagogas ekspertas', 'I psichologo kvalifikacinė kategorija', 'Logopedas ekspertas', 'Ketvirta trenerio kvalifikacinė kategorija', 'Penkta trenerio kvalifikacinė kategorija', 'Trečia trenerio kvalifikacinė kategorija', 'Specialusis pedagogas', 'Antra trenerio kvalifikacinė kategorija', 'Auklėtojas ekspertas', 'Vyresnysis tiflopedagogas', 'Surdopedagogas metodininkas', 'Tiflopedagogas metodininkas', 'Vyresnysis surdopedagogas', 'Koncertmeisteris ekspertas', 'Surdopedagogas ekspertas', 'Surdopedagogas', 'Šešta trenerio kvalifikacinė kategorija', 'Tiflopedagogas ekspertas'], dtype=object)
Sukuriama funkcija, kurios pagalba bus sugrupuotos mokytojų kategorijos į kvalifikacijos lygius.
Pasirinkti kvalifikacijos lygiai:
- Mokytojas
- Vyresnysis mokytojas
- Mokytojas metodininkas
- Mokytojas ekspertas
Kvalifikacijos lygių pasirinkimo paaiškinimas:
Mokytojas ekspertas - Aukščiausias lygis, rodantis didelę patirtį, žinias ir gebėjimus, galintis būti mentoriumi ir vadovu kitiems mokytojams.
Mokytojas metodininkas - Pedagogas, kuris ne tik moko, bet ir specializuojasi metodinėje veikloje, teikdamas pagalbą kitiems mokytojams.
Vyresnysis mokytojas - Pedagogas, turintis specializuotą išsilavinimą ir dirbantis tam tikroje srityje.
Mokytojas - Žmogus turintis pedagogo išsilavinimą, todėl šiam lygmeniui priskiriami visi duomenų bazėje išvardinti pedagogai nepriskirti jokiai kitai grupei.
Klasifikacijos logika:
Pasirinkta klasifikuoti lygiais pagal stulpelį 'Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia)', o ne pagal Pareigų grupė, nes jame yra grupės neįvardijančios kvalifikacijos lygio tik pareigas (kaip Direktorius, Vadovo pavaduotojai ugdymo reikalams ir t.t. )
- Specialistai (logopedai, surdopedagogai, tiflopedagogai) taip pat turi tuos pačius kvalifikacijos lygius, todėl nebuvo atskirti.
- Auklėtojai (priešmokyklinio ugdymo pedagogai) taip pat laikomi mokytojais, tad jie nebuvo atskirai išskirti.
def grupavimas(tekstas):
if isinstance(tekstas, str):
if 'ekspertas' in tekstas.lower():
return 'Ekspertas'
elif 'metodininkas' in tekstas.lower():
return 'Metodininkas'
elif 'vyresnysis' in tekstas.lower():
return 'Vyresnysis mokytojas'
else:
return 'Mokytojas'
else:
return 'Ne str'
#Funkcijs pritaikymas
kvalif['Lygis'] = kvalif['Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia)'].map(grupavimas)
kvalif
C:\Users\AgnėŠilkaitytėFinanc\AppData\Local\Temp\ipykernel_6712\2657985210.py:2: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy kvalif['Lygis'] = kvalif['Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia)'].map(grupavimas)
Mokslo metai | Institucijos savivaldybės ID | Institucijos savivaldybė | Pareigų grupė ID | Pareigų grupė | Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia) | Pedagogų skaičius | Lygis | |
---|---|---|---|---|---|---|---|---|
63910 | 2024-2025 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Mokytojas | 1 | Mokytojas |
63911 | 2024-2025 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Mokytojas metodininkas | 1 | Metodininkas |
63912 | 2024-2025 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Vyresnysis mokytojas | 1 | Vyresnysis mokytojas |
63913 | 2024-2025 | 260 | Akmenės r. sav. | 16 | Auklėtojai, nedėstantys mokykloje | Vyresnysis specialusis pedagogas | 2 | Vyresnysis mokytojas |
63914 | 2024-2025 | 260 | Akmenės r. sav. | 28 | Direktorius | Mokytojas | 1 | Mokytojas |
... | ... | ... | ... | ... | ... | ... | ... | ... |
69278 | 2024-2025 | 403 | Zarasų r. sav. | 9 | Specialieji pedagogai | Specialusis pedagogas metodininkas | 1 | Metodininkas |
69279 | 2024-2025 | 403 | Zarasų r. sav. | 9 | Specialieji pedagogai | Vyresnysis specialusis pedagogas | 1 | Vyresnysis mokytojas |
69280 | 2024-2025 | 403 | Zarasų r. sav. | 2 | Vadovo pavaduotojai ugdymo reikalams | Mokytojas | 1 | Mokytojas |
69281 | 2024-2025 | 403 | Zarasų r. sav. | 2 | Vadovo pavaduotojai ugdymo reikalams | Mokytojas metodininkas | 4 | Metodininkas |
69282 | 2024-2025 | 403 | Zarasų r. sav. | 2 | Vadovo pavaduotojai ugdymo reikalams | Vyresnysis mokytojas | 1 | Vyresnysis mokytojas |
5373 rows × 8 columns
#filtravimas patikrinimui
kvalif[kvalif['Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia)'].str.contains('ekspertas')]
Mokslo metai | Institucijos savivaldybės ID | Institucijos savivaldybė | Pareigų grupė ID | Pareigų grupė | Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia) | Pedagogų skaičius | Lygis | |
---|---|---|---|---|---|---|---|---|
63927 | 2024-2025 | 260 | Akmenės r. sav. | 39 | Kiti pedagoginiai darbuotojai | Mokytojas ekspertas | 1 | Ekspertas |
63941 | 2024-2025 | 260 | Akmenės r. sav. | 4 | Mokytojai | Mokytojas ekspertas | 6 | Ekspertas |
63948 | 2024-2025 | 260 | Akmenės r. sav. | 42 | Mokytojai | Mokytojas ekspertas | 2 | Ekspertas |
63973 | 2024-2025 | 260 | Akmenės r. sav. | 2 | Vadovo pavaduotojai ugdymo reikalams | Mokytojas ekspertas | 1 | Ekspertas |
64024 | 2024-2025 | 2 | Alytaus m. sav. | 32 | Meninio ugdymo mokytojai | Mokytojas ekspertas | 2 | Ekspertas |
... | ... | ... | ... | ... | ... | ... | ... | ... |
69198 | 2024-2025 | 459 | Visagino sav. | 4 | Mokytojai | Mokytojas ekspertas | 2 | Ekspertas |
69207 | 2024-2025 | 459 | Visagino sav. | 42 | Mokytojai | Papildomojo ugdymo pedagogas ekspertas | 2 | Ekspertas |
69246 | 2024-2025 | 403 | Zarasų r. sav. | 28 | Direktorius | Auklėtojas ekspertas | 1 | Ekspertas |
69258 | 2024-2025 | 403 | Zarasų r. sav. | 4 | Mokytojai | Mokytojas ekspertas | 5 | Ekspertas |
69264 | 2024-2025 | 403 | Zarasų r. sav. | 42 | Mokytojai | Mokytojas ekspertas | 1 | Ekspertas |
374 rows × 8 columns
#Tikrinimas su grupavimu
kvalif.groupby('Lygis')['Lygis'].count().sort_values(ascending=False)
Lygis Vyresnysis mokytojas 1944 Metodininkas 1606 Mokytojas 1449 Ekspertas 374 Name: Lygis, dtype: int64
#Likusiu kvalifikacijos tikrinimas ir pridejimas atgal i funkciją:
kvalif[kvalif['Lygis'].str.contains('Mokytojas')]['Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia)'].value_counts()
Pedagogo kvalifikacinė kategorija (aukščiausia ir naujausia) Mokytojas 684 Auklėtojas 145 Socialinis pedagogas 127 Specialusis pedagogas 83 IV psichologo kvalifikacinė kategorija 78 Logopedas 62 Profesijos mokytojas 57 Papildomojo ugdymo pedagogas 47 Koncertmeisteris 28 III psichologo kvalifikacinė kategorija 27 II psichologo kvalifikacinė kategorija 23 Trečia trenerio kvalifikacinė kategorija 18 Antra trenerio kvalifikacinė kategorija 17 Pirma trenerio kvalifikacinė kategorija 13 Ketvirta trenerio kvalifikacinė kategorija 13 Penkta trenerio kvalifikacinė kategorija 10 I psichologo kvalifikacinė kategorija 8 Šešta trenerio kvalifikacinė kategorija 5 Surdopedagogas 4 Name: count, dtype: int64
Grupavimas¶
#Grupavimas pagal savivaldybes, Lygius siekiant gauti pedagogų sk.
kvalif.groupby(['Institucijos savivaldybė', 'Lygis'])['Pedagogų skaičius'].sum()
Institucijos savivaldybė Lygis Akmenės r. sav. Ekspertas 10 Metodininkas 122 Mokytojas 36 Vyresnysis mokytojas 148 Alytaus m. sav. Ekspertas 40 ... Širvintų r. sav. Vyresnysis mokytojas 98 Švenčionių r. sav. Ekspertas 21 Metodininkas 187 Mokytojas 23 Vyresnysis mokytojas 140 Name: Pedagogų skaičius, Length: 239, dtype: int64
# Pagal savivaldybes surandame visų pedagogų sumą:
all_pedagogai = kvalif.groupby('Institucijos savivaldybė')['Pedagogų skaičius'].sum().reset_index()
all_pedagogai.columns = ['Institucijos savivaldybė', 'Visi pedagogai']
all_pedagogai
Institucijos savivaldybė | Visi pedagogai | |
---|---|---|
0 | Akmenės r. sav. | 316 |
1 | Alytaus m. sav. | 1053 |
2 | Alytaus r. sav. | 228 |
3 | Anykščių r. sav. | 320 |
4 | Birštono sav. | 85 |
5 | Biržų r. sav. | 388 |
6 | Druskininkų sav. | 320 |
7 | Elektrėnų sav. | 449 |
8 | Ignalinos r. sav. | 206 |
9 | Jonavos r. sav. | 719 |
10 | Joniškio r. sav. | 410 |
11 | Jurbarko r. sav. | 327 |
12 | Kaišiadorių r. sav. | 476 |
13 | Kalvarijos sav. | 160 |
14 | Kauno m. sav. | 5333 |
15 | Kauno r. sav. | 1329 |
16 | Kazlų Rūdos sav. | 201 |
17 | Kelmės r. sav. | 433 |
18 | Klaipėdos m. sav. | 3638 |
19 | Klaipėdos r. sav. | 785 |
20 | Kretingos r. sav. | 612 |
21 | Kupiškio r. sav. | 324 |
22 | Kėdainių r. sav. | 834 |
23 | Lazdijų r. sav. | 290 |
24 | Marijampolės sav. | 1055 |
25 | Mažeikių r. sav. | 959 |
26 | Molėtų r. sav. | 265 |
27 | Neringos sav. | 52 |
28 | Pagėgių sav. | 98 |
29 | Pakruojo r. sav. | 289 |
30 | Palangos m. sav. | 340 |
31 | Panevėžio m. sav. | 1733 |
32 | Panevėžio r. sav. | 438 |
33 | Pasvalio r. sav. | 415 |
34 | Plungės r. sav. | 525 |
35 | Prienų r. sav. | 373 |
36 | Radviliškio r. sav. | 508 |
37 | Raseinių r. sav. | 522 |
38 | Rietavo sav. | 116 |
39 | Rokiškio r. sav. | 448 |
40 | Skuodo r. sav. | 229 |
41 | Tauragės r. sav. | 637 |
42 | Telšių r. sav. | 693 |
43 | Trakų r. sav. | 602 |
44 | Ukmergės r. sav. | 666 |
45 | Utenos r. sav. | 548 |
46 | Varėnos r. sav. | 225 |
47 | Vilkaviškio r. sav. | 671 |
48 | Vilniaus m. sav. | 9143 |
49 | Vilniaus r. sav. | 1595 |
50 | Visagino sav. | 352 |
51 | Zarasų r. sav. | 222 |
52 | Šakių r. sav. | 422 |
53 | Šalčininkų r. sav. | 727 |
54 | Šiaulių m. sav. | 2247 |
55 | Šiaulių r. sav. | 577 |
56 | Šilalės r. sav. | 361 |
57 | Šilutės r. sav. | 701 |
58 | Širvintų r. sav. | 222 |
59 | Švenčionių r. sav. | 371 |
# Surandame visų lygių pedagogų sk. pagal savivaldybes
metodininkai = kvalif[kvalif['Lygis'] == 'Metodininkas'].groupby('Institucijos savivaldybė')['Pedagogų skaičius'].sum().reset_index()
metodininkai.columns = ['Institucijos savivaldybė', 'Metodininkai']
ekspertai = kvalif[kvalif['Lygis'] == 'Ekspertas'].groupby('Institucijos savivaldybė')['Pedagogų skaičius'].sum().reset_index()
ekspertai.columns = ['Institucijos savivaldybė', 'Ekspertai']
vyr_mokytojai = kvalif[kvalif['Lygis'] == 'Vyresnysis mokytojas'].groupby('Institucijos savivaldybė')['Pedagogų skaičius'].sum().reset_index()
vyr_mokytojai.columns = ['Institucijos savivaldybė', 'Vyr. Mokytojai']
mokytojai = kvalif[kvalif['Lygis'] == 'Mokytojas'].groupby('Institucijos savivaldybė')['Pedagogų skaičius'].sum().reset_index()
mokytojai.columns = ['Institucijos savivaldybė', 'Mokytojai']
# Sujungiame sukurtas lenteles all_pedagogai su visu lygiu lentelemis (mokytojai,specialistai,ekspertai,metodininkai):
merged_df = pd.merge(all_pedagogai, metodininkai, on='Institucijos savivaldybė', how='left').merge(
ekspertai, on='Institucijos savivaldybė', how='left').merge(
vyr_mokytojai, on='Institucijos savivaldybė', how='left').merge(
mokytojai, on='Institucijos savivaldybė', how='left').fillna(0)
merged_df
Institucijos savivaldybė | Visi pedagogai | Metodininkai | Ekspertai | Vyr. Mokytojai | Mokytojai | |
---|---|---|---|---|---|---|
0 | Akmenės r. sav. | 316 | 122 | 10.0 | 148 | 36 |
1 | Alytaus m. sav. | 1053 | 499 | 40.0 | 365 | 149 |
2 | Alytaus r. sav. | 228 | 87 | 3.0 | 109 | 29 |
3 | Anykščių r. sav. | 320 | 139 | 6.0 | 134 | 41 |
4 | Birštono sav. | 85 | 38 | 6.0 | 24 | 17 |
5 | Biržų r. sav. | 388 | 134 | 10.0 | 186 | 58 |
6 | Druskininkų sav. | 320 | 101 | 3.0 | 145 | 71 |
7 | Elektrėnų sav. | 449 | 125 | 8.0 | 218 | 98 |
8 | Ignalinos r. sav. | 206 | 88 | 5.0 | 84 | 29 |
9 | Jonavos r. sav. | 719 | 285 | 22.0 | 274 | 138 |
10 | Joniškio r. sav. | 410 | 171 | 5.0 | 169 | 65 |
11 | Jurbarko r. sav. | 327 | 132 | 8.0 | 160 | 27 |
12 | Kaišiadorių r. sav. | 476 | 142 | 10.0 | 247 | 77 |
13 | Kalvarijos sav. | 160 | 45 | 4.0 | 86 | 25 |
14 | Kauno m. sav. | 5333 | 2258 | 446.0 | 1747 | 882 |
15 | Kauno r. sav. | 1329 | 480 | 41.0 | 523 | 285 |
16 | Kazlų Rūdos sav. | 201 | 54 | 0.0 | 83 | 64 |
17 | Kelmės r. sav. | 433 | 184 | 2.0 | 202 | 45 |
18 | Klaipėdos m. sav. | 3638 | 1620 | 204.0 | 963 | 851 |
19 | Klaipėdos r. sav. | 785 | 266 | 18.0 | 303 | 198 |
20 | Kretingos r. sav. | 612 | 286 | 24.0 | 207 | 95 |
21 | Kupiškio r. sav. | 324 | 114 | 6.0 | 166 | 38 |
22 | Kėdainių r. sav. | 834 | 314 | 18.0 | 372 | 130 |
23 | Lazdijų r. sav. | 290 | 84 | 4.0 | 143 | 59 |
24 | Marijampolės sav. | 1055 | 402 | 21.0 | 426 | 206 |
25 | Mažeikių r. sav. | 959 | 486 | 37.0 | 335 | 101 |
26 | Molėtų r. sav. | 265 | 111 | 3.0 | 127 | 24 |
27 | Neringos sav. | 52 | 26 | 3.0 | 14 | 9 |
28 | Pagėgių sav. | 98 | 33 | 2.0 | 47 | 16 |
29 | Pakruojo r. sav. | 289 | 111 | 2.0 | 133 | 43 |
30 | Palangos m. sav. | 340 | 158 | 22.0 | 105 | 55 |
31 | Panevėžio m. sav. | 1733 | 861 | 59.0 | 583 | 230 |
32 | Panevėžio r. sav. | 438 | 174 | 6.0 | 197 | 61 |
33 | Pasvalio r. sav. | 415 | 158 | 3.0 | 204 | 50 |
34 | Plungės r. sav. | 525 | 212 | 9.0 | 240 | 64 |
35 | Prienų r. sav. | 373 | 149 | 12.0 | 167 | 45 |
36 | Radviliškio r. sav. | 508 | 223 | 20.0 | 207 | 58 |
37 | Raseinių r. sav. | 522 | 202 | 20.0 | 225 | 75 |
38 | Rietavo sav. | 116 | 50 | 1.0 | 53 | 12 |
39 | Rokiškio r. sav. | 448 | 216 | 11.0 | 165 | 56 |
40 | Skuodo r. sav. | 229 | 107 | 7.0 | 85 | 30 |
41 | Tauragės r. sav. | 637 | 312 | 12.0 | 242 | 71 |
42 | Telšių r. sav. | 693 | 220 | 4.0 | 381 | 88 |
43 | Trakų r. sav. | 602 | 216 | 10.0 | 252 | 124 |
44 | Ukmergės r. sav. | 666 | 281 | 13.0 | 304 | 68 |
45 | Utenos r. sav. | 548 | 215 | 11.0 | 276 | 46 |
46 | Varėnos r. sav. | 225 | 84 | 2.0 | 104 | 35 |
47 | Vilkaviškio r. sav. | 671 | 220 | 14.0 | 326 | 111 |
48 | Vilniaus m. sav. | 9143 | 2547 | 483.0 | 4024 | 2089 |
49 | Vilniaus r. sav. | 1595 | 400 | 23.0 | 799 | 373 |
50 | Visagino sav. | 352 | 172 | 4.0 | 118 | 58 |
51 | Zarasų r. sav. | 222 | 101 | 7.0 | 90 | 24 |
52 | Šakių r. sav. | 422 | 160 | 4.0 | 225 | 33 |
53 | Šalčininkų r. sav. | 727 | 133 | 7.0 | 454 | 133 |
54 | Šiaulių m. sav. | 2247 | 867 | 104.0 | 910 | 366 |
55 | Šiaulių r. sav. | 577 | 222 | 18.0 | 238 | 99 |
56 | Šilalės r. sav. | 361 | 209 | 17.0 | 104 | 31 |
57 | Šilutės r. sav. | 701 | 368 | 16.0 | 242 | 75 |
58 | Širvintų r. sav. | 222 | 84 | 4.0 | 98 | 36 |
59 | Švenčionių r. sav. | 371 | 187 | 21.0 | 140 | 23 |
# Suskaičiuojame pasiskirstymą tarp Lygių procentais ir pridedame naujais stulpeliais:
merged_df['Metodininkų procentas'] = round((merged_df['Metodininkai'] / merged_df['Visi pedagogai']) * 100,0)
merged_df['Ekspertų procentas'] = round((merged_df['Ekspertai'] / merged_df['Visi pedagogai']) * 100,0)
merged_df['Vyr. mokytojų procentas'] = round((merged_df['Vyr. Mokytojai'] / merged_df['Visi pedagogai']) * 100,0)
merged_df['Mokytojų procentas'] = round((merged_df['Mokytojai'] / merged_df['Visi pedagogai']) * 100,0)
merged_df
Institucijos savivaldybė | Visi pedagogai | Metodininkai | Ekspertai | Vyr. Mokytojai | Mokytojai | Metodininkų procentas | Ekspertų procentas | Vyr. mokytojų procentas | Mokytojų procentas | |
---|---|---|---|---|---|---|---|---|---|---|
0 | Akmenės r. sav. | 316 | 122 | 10.0 | 148 | 36 | 39.0 | 3.0 | 47.0 | 11.0 |
1 | Alytaus m. sav. | 1053 | 499 | 40.0 | 365 | 149 | 47.0 | 4.0 | 35.0 | 14.0 |
2 | Alytaus r. sav. | 228 | 87 | 3.0 | 109 | 29 | 38.0 | 1.0 | 48.0 | 13.0 |
3 | Anykščių r. sav. | 320 | 139 | 6.0 | 134 | 41 | 43.0 | 2.0 | 42.0 | 13.0 |
4 | Birštono sav. | 85 | 38 | 6.0 | 24 | 17 | 45.0 | 7.0 | 28.0 | 20.0 |
5 | Biržų r. sav. | 388 | 134 | 10.0 | 186 | 58 | 35.0 | 3.0 | 48.0 | 15.0 |
6 | Druskininkų sav. | 320 | 101 | 3.0 | 145 | 71 | 32.0 | 1.0 | 45.0 | 22.0 |
7 | Elektrėnų sav. | 449 | 125 | 8.0 | 218 | 98 | 28.0 | 2.0 | 49.0 | 22.0 |
8 | Ignalinos r. sav. | 206 | 88 | 5.0 | 84 | 29 | 43.0 | 2.0 | 41.0 | 14.0 |
9 | Jonavos r. sav. | 719 | 285 | 22.0 | 274 | 138 | 40.0 | 3.0 | 38.0 | 19.0 |
10 | Joniškio r. sav. | 410 | 171 | 5.0 | 169 | 65 | 42.0 | 1.0 | 41.0 | 16.0 |
11 | Jurbarko r. sav. | 327 | 132 | 8.0 | 160 | 27 | 40.0 | 2.0 | 49.0 | 8.0 |
12 | Kaišiadorių r. sav. | 476 | 142 | 10.0 | 247 | 77 | 30.0 | 2.0 | 52.0 | 16.0 |
13 | Kalvarijos sav. | 160 | 45 | 4.0 | 86 | 25 | 28.0 | 2.0 | 54.0 | 16.0 |
14 | Kauno m. sav. | 5333 | 2258 | 446.0 | 1747 | 882 | 42.0 | 8.0 | 33.0 | 17.0 |
15 | Kauno r. sav. | 1329 | 480 | 41.0 | 523 | 285 | 36.0 | 3.0 | 39.0 | 21.0 |
16 | Kazlų Rūdos sav. | 201 | 54 | 0.0 | 83 | 64 | 27.0 | 0.0 | 41.0 | 32.0 |
17 | Kelmės r. sav. | 433 | 184 | 2.0 | 202 | 45 | 42.0 | 0.0 | 47.0 | 10.0 |
18 | Klaipėdos m. sav. | 3638 | 1620 | 204.0 | 963 | 851 | 45.0 | 6.0 | 26.0 | 23.0 |
19 | Klaipėdos r. sav. | 785 | 266 | 18.0 | 303 | 198 | 34.0 | 2.0 | 39.0 | 25.0 |
20 | Kretingos r. sav. | 612 | 286 | 24.0 | 207 | 95 | 47.0 | 4.0 | 34.0 | 16.0 |
21 | Kupiškio r. sav. | 324 | 114 | 6.0 | 166 | 38 | 35.0 | 2.0 | 51.0 | 12.0 |
22 | Kėdainių r. sav. | 834 | 314 | 18.0 | 372 | 130 | 38.0 | 2.0 | 45.0 | 16.0 |
23 | Lazdijų r. sav. | 290 | 84 | 4.0 | 143 | 59 | 29.0 | 1.0 | 49.0 | 20.0 |
24 | Marijampolės sav. | 1055 | 402 | 21.0 | 426 | 206 | 38.0 | 2.0 | 40.0 | 20.0 |
25 | Mažeikių r. sav. | 959 | 486 | 37.0 | 335 | 101 | 51.0 | 4.0 | 35.0 | 11.0 |
26 | Molėtų r. sav. | 265 | 111 | 3.0 | 127 | 24 | 42.0 | 1.0 | 48.0 | 9.0 |
27 | Neringos sav. | 52 | 26 | 3.0 | 14 | 9 | 50.0 | 6.0 | 27.0 | 17.0 |
28 | Pagėgių sav. | 98 | 33 | 2.0 | 47 | 16 | 34.0 | 2.0 | 48.0 | 16.0 |
29 | Pakruojo r. sav. | 289 | 111 | 2.0 | 133 | 43 | 38.0 | 1.0 | 46.0 | 15.0 |
30 | Palangos m. sav. | 340 | 158 | 22.0 | 105 | 55 | 46.0 | 6.0 | 31.0 | 16.0 |
31 | Panevėžio m. sav. | 1733 | 861 | 59.0 | 583 | 230 | 50.0 | 3.0 | 34.0 | 13.0 |
32 | Panevėžio r. sav. | 438 | 174 | 6.0 | 197 | 61 | 40.0 | 1.0 | 45.0 | 14.0 |
33 | Pasvalio r. sav. | 415 | 158 | 3.0 | 204 | 50 | 38.0 | 1.0 | 49.0 | 12.0 |
34 | Plungės r. sav. | 525 | 212 | 9.0 | 240 | 64 | 40.0 | 2.0 | 46.0 | 12.0 |
35 | Prienų r. sav. | 373 | 149 | 12.0 | 167 | 45 | 40.0 | 3.0 | 45.0 | 12.0 |
36 | Radviliškio r. sav. | 508 | 223 | 20.0 | 207 | 58 | 44.0 | 4.0 | 41.0 | 11.0 |
37 | Raseinių r. sav. | 522 | 202 | 20.0 | 225 | 75 | 39.0 | 4.0 | 43.0 | 14.0 |
38 | Rietavo sav. | 116 | 50 | 1.0 | 53 | 12 | 43.0 | 1.0 | 46.0 | 10.0 |
39 | Rokiškio r. sav. | 448 | 216 | 11.0 | 165 | 56 | 48.0 | 2.0 | 37.0 | 12.0 |
40 | Skuodo r. sav. | 229 | 107 | 7.0 | 85 | 30 | 47.0 | 3.0 | 37.0 | 13.0 |
41 | Tauragės r. sav. | 637 | 312 | 12.0 | 242 | 71 | 49.0 | 2.0 | 38.0 | 11.0 |
42 | Telšių r. sav. | 693 | 220 | 4.0 | 381 | 88 | 32.0 | 1.0 | 55.0 | 13.0 |
43 | Trakų r. sav. | 602 | 216 | 10.0 | 252 | 124 | 36.0 | 2.0 | 42.0 | 21.0 |
44 | Ukmergės r. sav. | 666 | 281 | 13.0 | 304 | 68 | 42.0 | 2.0 | 46.0 | 10.0 |
45 | Utenos r. sav. | 548 | 215 | 11.0 | 276 | 46 | 39.0 | 2.0 | 50.0 | 8.0 |
46 | Varėnos r. sav. | 225 | 84 | 2.0 | 104 | 35 | 37.0 | 1.0 | 46.0 | 16.0 |
47 | Vilkaviškio r. sav. | 671 | 220 | 14.0 | 326 | 111 | 33.0 | 2.0 | 49.0 | 17.0 |
48 | Vilniaus m. sav. | 9143 | 2547 | 483.0 | 4024 | 2089 | 28.0 | 5.0 | 44.0 | 23.0 |
49 | Vilniaus r. sav. | 1595 | 400 | 23.0 | 799 | 373 | 25.0 | 1.0 | 50.0 | 23.0 |
50 | Visagino sav. | 352 | 172 | 4.0 | 118 | 58 | 49.0 | 1.0 | 34.0 | 16.0 |
51 | Zarasų r. sav. | 222 | 101 | 7.0 | 90 | 24 | 45.0 | 3.0 | 41.0 | 11.0 |
52 | Šakių r. sav. | 422 | 160 | 4.0 | 225 | 33 | 38.0 | 1.0 | 53.0 | 8.0 |
53 | Šalčininkų r. sav. | 727 | 133 | 7.0 | 454 | 133 | 18.0 | 1.0 | 62.0 | 18.0 |
54 | Šiaulių m. sav. | 2247 | 867 | 104.0 | 910 | 366 | 39.0 | 5.0 | 40.0 | 16.0 |
55 | Šiaulių r. sav. | 577 | 222 | 18.0 | 238 | 99 | 38.0 | 3.0 | 41.0 | 17.0 |
56 | Šilalės r. sav. | 361 | 209 | 17.0 | 104 | 31 | 58.0 | 5.0 | 29.0 | 9.0 |
57 | Šilutės r. sav. | 701 | 368 | 16.0 | 242 | 75 | 52.0 | 2.0 | 35.0 | 11.0 |
58 | Širvintų r. sav. | 222 | 84 | 4.0 | 98 | 36 | 38.0 | 2.0 | 44.0 | 16.0 |
59 | Švenčionių r. sav. | 371 | 187 | 21.0 | 140 | 23 | 50.0 | 6.0 | 38.0 | 6.0 |
# Išsirikiuojame savivaldybių, kurių mokytojų procentas mažiausias (vadinasi turi didesnį procentą kitų specialistų)
# Bei lengvesniam skaitymui pakeičiami indexai nuo 1
merged_df = merged_df.sort_values(by= ['Mokytojų procentas', 'Metodininkų procentas','Ekspertų procentas','Vyr. mokytojų procentas'],
ascending=[True, True,False, False]).reset_index(drop=True)
merged_df.index = merged_df.index + 1
merged_df
Institucijos savivaldybė | Visi pedagogai | Metodininkai | Ekspertai | Vyr. Mokytojai | Mokytojai | Metodininkų procentas | Ekspertų procentas | Vyr. mokytojų procentas | Mokytojų procentas | |
---|---|---|---|---|---|---|---|---|---|---|
1 | Švenčionių r. sav. | 371 | 187 | 21.0 | 140 | 23 | 50.0 | 6.0 | 38.0 | 6.0 |
2 | Šakių r. sav. | 422 | 160 | 4.0 | 225 | 33 | 38.0 | 1.0 | 53.0 | 8.0 |
3 | Utenos r. sav. | 548 | 215 | 11.0 | 276 | 46 | 39.0 | 2.0 | 50.0 | 8.0 |
4 | Jurbarko r. sav. | 327 | 132 | 8.0 | 160 | 27 | 40.0 | 2.0 | 49.0 | 8.0 |
5 | Molėtų r. sav. | 265 | 111 | 3.0 | 127 | 24 | 42.0 | 1.0 | 48.0 | 9.0 |
6 | Šilalės r. sav. | 361 | 209 | 17.0 | 104 | 31 | 58.0 | 5.0 | 29.0 | 9.0 |
7 | Ukmergės r. sav. | 666 | 281 | 13.0 | 304 | 68 | 42.0 | 2.0 | 46.0 | 10.0 |
8 | Kelmės r. sav. | 433 | 184 | 2.0 | 202 | 45 | 42.0 | 0.0 | 47.0 | 10.0 |
9 | Rietavo sav. | 116 | 50 | 1.0 | 53 | 12 | 43.0 | 1.0 | 46.0 | 10.0 |
10 | Akmenės r. sav. | 316 | 122 | 10.0 | 148 | 36 | 39.0 | 3.0 | 47.0 | 11.0 |
11 | Radviliškio r. sav. | 508 | 223 | 20.0 | 207 | 58 | 44.0 | 4.0 | 41.0 | 11.0 |
12 | Zarasų r. sav. | 222 | 101 | 7.0 | 90 | 24 | 45.0 | 3.0 | 41.0 | 11.0 |
13 | Tauragės r. sav. | 637 | 312 | 12.0 | 242 | 71 | 49.0 | 2.0 | 38.0 | 11.0 |
14 | Mažeikių r. sav. | 959 | 486 | 37.0 | 335 | 101 | 51.0 | 4.0 | 35.0 | 11.0 |
15 | Šilutės r. sav. | 701 | 368 | 16.0 | 242 | 75 | 52.0 | 2.0 | 35.0 | 11.0 |
16 | Kupiškio r. sav. | 324 | 114 | 6.0 | 166 | 38 | 35.0 | 2.0 | 51.0 | 12.0 |
17 | Pasvalio r. sav. | 415 | 158 | 3.0 | 204 | 50 | 38.0 | 1.0 | 49.0 | 12.0 |
18 | Prienų r. sav. | 373 | 149 | 12.0 | 167 | 45 | 40.0 | 3.0 | 45.0 | 12.0 |
19 | Plungės r. sav. | 525 | 212 | 9.0 | 240 | 64 | 40.0 | 2.0 | 46.0 | 12.0 |
20 | Rokiškio r. sav. | 448 | 216 | 11.0 | 165 | 56 | 48.0 | 2.0 | 37.0 | 12.0 |
21 | Telšių r. sav. | 693 | 220 | 4.0 | 381 | 88 | 32.0 | 1.0 | 55.0 | 13.0 |
22 | Alytaus r. sav. | 228 | 87 | 3.0 | 109 | 29 | 38.0 | 1.0 | 48.0 | 13.0 |
23 | Anykščių r. sav. | 320 | 139 | 6.0 | 134 | 41 | 43.0 | 2.0 | 42.0 | 13.0 |
24 | Skuodo r. sav. | 229 | 107 | 7.0 | 85 | 30 | 47.0 | 3.0 | 37.0 | 13.0 |
25 | Panevėžio m. sav. | 1733 | 861 | 59.0 | 583 | 230 | 50.0 | 3.0 | 34.0 | 13.0 |
26 | Raseinių r. sav. | 522 | 202 | 20.0 | 225 | 75 | 39.0 | 4.0 | 43.0 | 14.0 |
27 | Panevėžio r. sav. | 438 | 174 | 6.0 | 197 | 61 | 40.0 | 1.0 | 45.0 | 14.0 |
28 | Ignalinos r. sav. | 206 | 88 | 5.0 | 84 | 29 | 43.0 | 2.0 | 41.0 | 14.0 |
29 | Alytaus m. sav. | 1053 | 499 | 40.0 | 365 | 149 | 47.0 | 4.0 | 35.0 | 14.0 |
30 | Biržų r. sav. | 388 | 134 | 10.0 | 186 | 58 | 35.0 | 3.0 | 48.0 | 15.0 |
31 | Pakruojo r. sav. | 289 | 111 | 2.0 | 133 | 43 | 38.0 | 1.0 | 46.0 | 15.0 |
32 | Kalvarijos sav. | 160 | 45 | 4.0 | 86 | 25 | 28.0 | 2.0 | 54.0 | 16.0 |
33 | Kaišiadorių r. sav. | 476 | 142 | 10.0 | 247 | 77 | 30.0 | 2.0 | 52.0 | 16.0 |
34 | Pagėgių sav. | 98 | 33 | 2.0 | 47 | 16 | 34.0 | 2.0 | 48.0 | 16.0 |
35 | Varėnos r. sav. | 225 | 84 | 2.0 | 104 | 35 | 37.0 | 1.0 | 46.0 | 16.0 |
36 | Kėdainių r. sav. | 834 | 314 | 18.0 | 372 | 130 | 38.0 | 2.0 | 45.0 | 16.0 |
37 | Širvintų r. sav. | 222 | 84 | 4.0 | 98 | 36 | 38.0 | 2.0 | 44.0 | 16.0 |
38 | Šiaulių m. sav. | 2247 | 867 | 104.0 | 910 | 366 | 39.0 | 5.0 | 40.0 | 16.0 |
39 | Joniškio r. sav. | 410 | 171 | 5.0 | 169 | 65 | 42.0 | 1.0 | 41.0 | 16.0 |
40 | Palangos m. sav. | 340 | 158 | 22.0 | 105 | 55 | 46.0 | 6.0 | 31.0 | 16.0 |
41 | Kretingos r. sav. | 612 | 286 | 24.0 | 207 | 95 | 47.0 | 4.0 | 34.0 | 16.0 |
42 | Visagino sav. | 352 | 172 | 4.0 | 118 | 58 | 49.0 | 1.0 | 34.0 | 16.0 |
43 | Vilkaviškio r. sav. | 671 | 220 | 14.0 | 326 | 111 | 33.0 | 2.0 | 49.0 | 17.0 |
44 | Šiaulių r. sav. | 577 | 222 | 18.0 | 238 | 99 | 38.0 | 3.0 | 41.0 | 17.0 |
45 | Kauno m. sav. | 5333 | 2258 | 446.0 | 1747 | 882 | 42.0 | 8.0 | 33.0 | 17.0 |
46 | Neringos sav. | 52 | 26 | 3.0 | 14 | 9 | 50.0 | 6.0 | 27.0 | 17.0 |
47 | Šalčininkų r. sav. | 727 | 133 | 7.0 | 454 | 133 | 18.0 | 1.0 | 62.0 | 18.0 |
48 | Jonavos r. sav. | 719 | 285 | 22.0 | 274 | 138 | 40.0 | 3.0 | 38.0 | 19.0 |
49 | Lazdijų r. sav. | 290 | 84 | 4.0 | 143 | 59 | 29.0 | 1.0 | 49.0 | 20.0 |
50 | Marijampolės sav. | 1055 | 402 | 21.0 | 426 | 206 | 38.0 | 2.0 | 40.0 | 20.0 |
51 | Birštono sav. | 85 | 38 | 6.0 | 24 | 17 | 45.0 | 7.0 | 28.0 | 20.0 |
52 | Kauno r. sav. | 1329 | 480 | 41.0 | 523 | 285 | 36.0 | 3.0 | 39.0 | 21.0 |
53 | Trakų r. sav. | 602 | 216 | 10.0 | 252 | 124 | 36.0 | 2.0 | 42.0 | 21.0 |
54 | Elektrėnų sav. | 449 | 125 | 8.0 | 218 | 98 | 28.0 | 2.0 | 49.0 | 22.0 |
55 | Druskininkų sav. | 320 | 101 | 3.0 | 145 | 71 | 32.0 | 1.0 | 45.0 | 22.0 |
56 | Vilniaus r. sav. | 1595 | 400 | 23.0 | 799 | 373 | 25.0 | 1.0 | 50.0 | 23.0 |
57 | Vilniaus m. sav. | 9143 | 2547 | 483.0 | 4024 | 2089 | 28.0 | 5.0 | 44.0 | 23.0 |
58 | Klaipėdos m. sav. | 3638 | 1620 | 204.0 | 963 | 851 | 45.0 | 6.0 | 26.0 | 23.0 |
59 | Klaipėdos r. sav. | 785 | 266 | 18.0 | 303 | 198 | 34.0 | 2.0 | 39.0 | 25.0 |
60 | Kazlų Rūdos sav. | 201 | 54 | 0.0 | 83 | 64 | 27.0 | 0.0 | 41.0 | 32.0 |
Hipotezės palyginimas¶
# Atspausdintos top 25 savivaldybės
top_25 = merged_df[0:25]
top_25
Institucijos savivaldybė | Visi pedagogai | Metodininkai | Ekspertai | Vyr. Mokytojai | Mokytojai | Metodininkų procentas | Ekspertų procentas | Vyr. mokytojų procentas | Mokytojų procentas | |
---|---|---|---|---|---|---|---|---|---|---|
1 | Švenčionių r. sav. | 371 | 187 | 21.0 | 140 | 23 | 50.0 | 6.0 | 38.0 | 6.0 |
2 | Šakių r. sav. | 422 | 160 | 4.0 | 225 | 33 | 38.0 | 1.0 | 53.0 | 8.0 |
3 | Utenos r. sav. | 548 | 215 | 11.0 | 276 | 46 | 39.0 | 2.0 | 50.0 | 8.0 |
4 | Jurbarko r. sav. | 327 | 132 | 8.0 | 160 | 27 | 40.0 | 2.0 | 49.0 | 8.0 |
5 | Molėtų r. sav. | 265 | 111 | 3.0 | 127 | 24 | 42.0 | 1.0 | 48.0 | 9.0 |
6 | Šilalės r. sav. | 361 | 209 | 17.0 | 104 | 31 | 58.0 | 5.0 | 29.0 | 9.0 |
7 | Ukmergės r. sav. | 666 | 281 | 13.0 | 304 | 68 | 42.0 | 2.0 | 46.0 | 10.0 |
8 | Kelmės r. sav. | 433 | 184 | 2.0 | 202 | 45 | 42.0 | 0.0 | 47.0 | 10.0 |
9 | Rietavo sav. | 116 | 50 | 1.0 | 53 | 12 | 43.0 | 1.0 | 46.0 | 10.0 |
10 | Akmenės r. sav. | 316 | 122 | 10.0 | 148 | 36 | 39.0 | 3.0 | 47.0 | 11.0 |
11 | Radviliškio r. sav. | 508 | 223 | 20.0 | 207 | 58 | 44.0 | 4.0 | 41.0 | 11.0 |
12 | Zarasų r. sav. | 222 | 101 | 7.0 | 90 | 24 | 45.0 | 3.0 | 41.0 | 11.0 |
13 | Tauragės r. sav. | 637 | 312 | 12.0 | 242 | 71 | 49.0 | 2.0 | 38.0 | 11.0 |
14 | Mažeikių r. sav. | 959 | 486 | 37.0 | 335 | 101 | 51.0 | 4.0 | 35.0 | 11.0 |
15 | Šilutės r. sav. | 701 | 368 | 16.0 | 242 | 75 | 52.0 | 2.0 | 35.0 | 11.0 |
16 | Kupiškio r. sav. | 324 | 114 | 6.0 | 166 | 38 | 35.0 | 2.0 | 51.0 | 12.0 |
17 | Pasvalio r. sav. | 415 | 158 | 3.0 | 204 | 50 | 38.0 | 1.0 | 49.0 | 12.0 |
18 | Prienų r. sav. | 373 | 149 | 12.0 | 167 | 45 | 40.0 | 3.0 | 45.0 | 12.0 |
19 | Plungės r. sav. | 525 | 212 | 9.0 | 240 | 64 | 40.0 | 2.0 | 46.0 | 12.0 |
20 | Rokiškio r. sav. | 448 | 216 | 11.0 | 165 | 56 | 48.0 | 2.0 | 37.0 | 12.0 |
21 | Telšių r. sav. | 693 | 220 | 4.0 | 381 | 88 | 32.0 | 1.0 | 55.0 | 13.0 |
22 | Alytaus r. sav. | 228 | 87 | 3.0 | 109 | 29 | 38.0 | 1.0 | 48.0 | 13.0 |
23 | Anykščių r. sav. | 320 | 139 | 6.0 | 134 | 41 | 43.0 | 2.0 | 42.0 | 13.0 |
24 | Skuodo r. sav. | 229 | 107 | 7.0 | 85 | 30 | 47.0 | 3.0 | 37.0 | 13.0 |
25 | Panevėžio m. sav. | 1733 | 861 | 59.0 | 583 | 230 | 50.0 | 3.0 | 34.0 | 13.0 |
# Grafiko braižymas pagal pedagogų kiekį TOP 25 savivaldybėse (ne pagal paskaičiuotą prcentinę dalį)
grafiko_columns = ['Institucijos savivaldybė', 'Mokytojai', 'Vyr. Mokytojai', 'Ekspertai', 'Metodininkai',]
top_25_grafikui = top_25[grafiko_columns]
heatmap_data = top_25_grafikui.set_index('Institucijos savivaldybė').T
plt.figure(figsize=(10, 6))
sns.heatmap(heatmap_data,
annot=True,
fmt=".0f", # skaičių atvaizdavimo formatas - suapvalininant
linewidths=0.3, # linijų storis
cmap='coolwarm',
annot_kws={"size": 10, "rotation": 90}) # Pakeistas dydis ir pasuktas tekstas eiluėse
plt.title('Pedagogų skaičius pagal kategorijas TOP 25 savivaldybėse')
plt.xlabel('Savivaldybės')
plt.ylabel('Pedagogų lygiai')
plt.show()
Vilniaus_index = merged_df[merged_df['Institucijos savivaldybė']=='Vilniaus m. sav.'].index[0]
Kauno_index = merged_df[merged_df['Institucijos savivaldybė']=='Kauno m. sav.'].index[0]
Klaipėda_index = merged_df[merged_df['Institucijos savivaldybė']=='Klaipėdos m. sav.'].index[0]
Panevėžio_index = merged_df[merged_df['Institucijos savivaldybė']=='Panevėžio m. sav.'].index[0]
Šiaulių_index = merged_df[merged_df['Institucijos savivaldybė']=='Šiaulių m. sav.'].index[0]
print('Vilniaus miesto indekas', Vilniaus_index)
print('Kauno miesto indekas', Kauno_index)
print('Klaipėdos miesto indekas', Klaipėda_index)
print('Panevėžio miesto indekas', Panevėžio_index)
print('Šiaulių miesto indekas', Šiaulių_index)
Vilniaus miesto indekas 57 Kauno miesto indekas 45 Klaipėdos miesto indekas 58 Panevėžio miesto indekas 25 Šiaulių miesto indekas 38
Hipotezės rezultatas¶
Turint Top 25 lentelę (filtruota pagal mažiausius mokytojų procentus savivaldybėse) matome, kad iš didesnių Lietuvos miestų į ją patenka tik Panevėžys pagal procentalios dalies pasiskirstymą tarp mokytojų ir kitų aukštesnio lygio kvalifikacijų.
Tačiau TOP 25 grafike (nubraižytame pagal pedagogų kiekį savivaldybėse) dideji Lietuvos miestai labai išsiskiria pedagogų skaičiumi nuo kitų savivaldybių, todėl buvo pasirinktas skaičiavimas procentaliai pagal mokytojų ir kitų kvalifikacijų pasiskirstymą, negu pagal pedagogų skaičių.
print("Vertinant grafiką būtų galima tegti, kad hipotezė pasitvirtino, tačiau procentalus skaičiavimas (Top 25 lentelė) parodė, jog mažesni miestai lenkia\n","didžiuosius Lietuvos miestus. Taigi darome išvada, jog hipotezė nepasitvirtino, nes dideji miestai užima tik", Vilniaus_index , Kauno_index, Klaipėda_index, Panevėžio_index, Šiaulių_index, "vietas.")
Vertinant grafiką būtų galima tegti, kad hipotezė pasitvirtino, tačiau procentalus skaičiavimas (Top 25 lentelė) parodė, jog mažesni miestai lenkia didžiuosius Lietuvos miestus. Taigi darome išvada, jog hipotezė nepasitvirtino, nes dideji miestai užima tik 57 45 58 25 38 vietas.
Išvada¶
Apibendrinant tyrimo rezultatus, galima teigti, kad iš trijų keltų hipotezių buvo patvirtintos dvi hipotezės:
H1 – Hipotezė, jog pedagogų skaičius Lietuvoje yra itin sumažėjęs, pasitvirtino. Nors pastebėtas „amzius“ lentelės netikslumas, „kvalif“ ir „kelios_darb“ duomenys parodė reikšmingą pedagogų skaičiaus mažėjimą nuo 2012 metų, nurodantį galimą pedagogų trūkumą.
H2 – Hipotezė, kad kritinė riba dėl mokytojų trūkumo bus pasiekta per 30 metų, taip pat buvo patvirtinta. Remiantis modeliu, pedagogų skaičius kritinę 45000 ribą gali peržengti jau 2031 m., o mažėjimo tendencija gali išlikti.
H3 – Hipotezė, kad aukščiausios kvalifikacijos mokytojų didžiausias kiekis yra didžiuosiuose miestuose, nepasitvirtino. Nors didieji miestai išsiskiria mokytojų skaičiumi, procentaliai aukščiausios kvalifikacijos pedagogų didžiuosiuose miestuose yra mažiau nei mažesniuose miestuose.