У овој радној свесци ћемо отворене податке o студентима прерадити и припремити мању агрегирану табелу за даљу обраду и визуализације. Сирове податке преузели смо са сајта Министарства за просвету, науку и технолошки развој: http://opendata.mpn.gov.rs/index.php?ucenici_studenti=visoko. Фајл у .csv формату се налази у фолдеру raw data. У наставку ћемо користећи библиотеке pandas и cyrtranslit:
Ова радна свеска је замишљена као додатни материјал за оне који се интересују за то како је оригинална табела са сајта МПНТР-а преточена у мању табелу коришћену у остатку анализе. Предлажемо да прво прођете кроз радну свеску са обрадом и визуализацијом ових података, а тек онда да се упустите у овај мало досаднији посао прераде података.
import pandas as pd
import cyrtranslit
Као и претходно користићемо библиотеку pandas за учитавање и преглед података, док ћемо у овој свесци користити и библиотеку cyrtranslit за превођење ћириличног у латинично писмо. Подаци су преузети са поменуте адресе и сачувани у локалном фолдеру, ако преузмете неку новију верзију података, промените наредну команду:
studenti = pd.read_csv('data/studenti data/raw data/MPNTRopendata_vs.csv')
studenti.head(2)
# | ИД установе | Универзитет | Назив установе | Тип установе | ИД програма | Назив програма | Звање | Поље | Ниво | ... | Број самофинансирајући студената - шеста година | Број страних студената - прва година | Број страних студената - друга година | Број страних студената - трећа година | Број страних студената - четврта година | Број страних студената - пета година | Број страних студената - шеста година | Број свршених студената током претходне школске године | Број пријављених кандидата на упису у наредну школску годину - I рок | Број пријављених кандидата на упису у наредну школску годину - II рок | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1.0 | 82 | Универзитет у Приштини | Правни факултет, Косовска Митровица | Државни факултет | 16 | ОАС | Дипломирани правник | Друштвено-хуманистичке науке | Основне академске | ... | NaN | 0.0 | 0.0 | 0.0 | 0.0 | NaN | NaN | 42 | 104.0 | 0.0 |
1 | 2.0 | 62 | Универзитет у Новом Саду | Факултет техничких наука | Државни факултет | 616 | Инжењерски менаџмент (SSS) | Специјалиста струковни инжењер менаџмента | Техничко-технолошке науке | Спец. струковне | ... | NaN | 0.0 | NaN | NaN | NaN | NaN | NaN | 22 | 29.0 | 0.0 |
2 rows × 37 columns
Ова табела о студентима садржи различите високошколске програме, за сваки имамо податке о универзитету, нивоу студија, бројевима студената, звању које студенти стичу и слично. Како је овај преглед колона скраћен, остатак доступних колона можемо видети уз помоћ функције columns:
studenti.columns
Index(['#', 'ИД установе', 'Универзитет', 'Назив установе', 'Тип установе', 'ИД програма', 'Назив програма', 'Звање', 'Поље', 'Ниво', 'Школарина за домаће студенте', 'Школарина за стране студенте', 'Број ЕСПБ бодова', 'Број решења акредитације', 'Датум решења акредитације', 'Акредитациона квота', 'Број буџетских студената - прва година', 'Број буџетских студената - друга година', 'Број буџетских студената - трећа година', 'Број буџетских студената - четврта година', 'Број буџетских студената - пета година', 'Број буџетских студената - шеста година', 'Број самофинансирајући студената - прва година', 'Број самофинансирајући студената - друга година', 'Број самофинансирајући студената - трећа година', 'Број самофинансирајући студената - четврта година', 'Број самофинансирајући студената - пета година', 'Број самофинансирајући студената - шеста година', 'Број страних студената - прва година', 'Број страних студената - друга година', 'Број страних студената - трећа година', 'Број страних студената - четврта година', 'Број страних студената - пета година', 'Број страних студената - шеста година', 'Број свршених студената током претходне школске године', 'Број пријављених кандидата на упису у наредну школску годину - I рок', 'Број пријављених кандидата на упису у наредну школску годину - II рок'], dtype='object')
Пре даље анализе преписаћемо имена колона у латинично писмо ради лакшег куцања кода и позивања колона у наставку. То радимо уз помоћ функције to_latin из библиотеке cyrtranslit:
studenti.columns = [cyrtranslit.to_latin(text,'sr') for text in list(studenti.columns)]
Користећи функцију info излистаћемо све колоне да извидимо тип података који се у њима крије као и број уноса који постоји у њима:
studenti.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 1924 entries, 0 to 1923 Data columns (total 37 columns): # 1924 non-null float64 ID ustanove 1924 non-null int64 Univerzitet 1501 non-null object Naziv ustanove 1924 non-null object Tip ustanove 1924 non-null object ID programa 1924 non-null int64 Naziv programa 1924 non-null object Zvanje 1924 non-null object Polje 1924 non-null object Nivo 1924 non-null object Školarina za domaće studente 1924 non-null float64 Školarina za strane studente 1924 non-null float64 Broj ESPB bodova 1924 non-null int64 Broj rešenja akreditacije 1848 non-null object Datum rešenja akreditacije 1848 non-null object Akreditaciona kvota 1618 non-null float64 Broj budžetskih studenata - prva godina 1593 non-null float64 Broj budžetskih studenata - druga godina 1082 non-null float64 Broj budžetskih studenata - treća godina 978 non-null float64 Broj budžetskih studenata - četvrta godina 512 non-null float64 Broj budžetskih studenata - peta godina 167 non-null float64 Broj budžetskih studenata - šesta godina 128 non-null float64 Broj samofinansirajući studenata - prva godina 1684 non-null float64 Broj samofinansirajući studenata - druga godina 1118 non-null float64 Broj samofinansirajući studenata - treća godina 1020 non-null float64 Broj samofinansirajući studenata - četvrta godina 540 non-null float64 Broj samofinansirajući studenata - peta godina 179 non-null float64 Broj samofinansirajući studenata - šesta godina 133 non-null float64 Broj stranih studenata - prva godina 1335 non-null float64 Broj stranih studenata - druga godina 892 non-null float64 Broj stranih studenata - treća godina 803 non-null float64 Broj stranih studenata - četvrta godina 450 non-null float64 Broj stranih studenata - peta godina 163 non-null float64 Broj stranih studenata - šesta godina 127 non-null float64 Broj svršenih studenata tokom prethodne školske godine 1924 non-null int64 Broj prijavljenih kandidata na upisu u narednu školsku godinu - I rok 1618 non-null float64 Broj prijavljenih kandidata na upisu u narednu školsku godinu - II rok 1559 non-null float64 dtypes: float64(24), int64(4), object(9) memory usage: 556.2+ KB
Видимо у табели да су нам на располагању бројеви студената на буџету, самофинансирању и страни студенти по годинама, стога ћемо увести колоне у којима су и укупни бројеви студената све ове три категорије. У сабирању ових колона користићемо функцију sum:
studenti['Broj budžetskih studenata'] = studenti[['Broj budžetskih studenata - prva godina', 'Broj budžetskih studenata - druga godina','Broj budžetskih studenata - treća godina','Broj budžetskih studenata - četvrta godina','Broj budžetskih studenata - peta godina','Broj budžetskih studenata - šesta godina']].sum(axis=1)
studenti['Broj samofinansirajućih studenata'] = studenti[['Broj samofinansirajući studenata - prva godina', 'Broj samofinansirajući studenata - druga godina','Broj samofinansirajući studenata - treća godina','Broj samofinansirajući studenata - četvrta godina','Broj samofinansirajući studenata - peta godina','Broj samofinansirajući studenata - šesta godina']].sum(axis=1)
studenti['Broj stranih studenata'] = studenti[['Broj stranih studenata - prva godina','Broj stranih studenata - druga godina','Broj stranih studenata - treća godina','Broj stranih studenata - četvrta godina','Broj stranih studenata - peta godina','Broj stranih studenata - šesta godina']].sum(axis=1)
studenti['Broj studenata'] = studenti[['Broj budžetskih studenata','Broj samofinansirajućih studenata','Broj stranih studenata']].sum(axis=1)
За сваки од студијских програма видимо да табела садржи и информацију о броју ЕСПБ бодова, које можемо превести у дужину трајања програма по семестрима и годинама (користећи чињеницу да школска година има 60, а семестар 30 ЕСПБ бодова):
studenti['Dužina trajanja programa (u semestrima)'] = studenti['Broj ESPB bodova']//30
studenti['Dužina trajanja programa (u god)'] = studenti['Broj ESPB bodova']//60
Потражња за одређеним факултетом дата је у две колоне, кроз два уписна рока, стога ћемо додати и колону у којој ћемо чувати укупан број пријављених кандидата:
studenti['Broj prijavljenih kandidata'] = studenti[['Broj prijavljenih kandidata na upisu u narednu školsku godinu - I rok','Broj prijavljenih kandidata na upisu u narednu školsku godinu - II rok']].sum(axis=1)
Зарад испитивања пролазности студената кроз различите академске године, направићемо и колоне у којима су студенти сваке од година, независно да ли су у питању студенти на буџету или не:
studenti['Studenti prva godina'] = studenti[['Broj budžetskih studenata - prva godina','Broj samofinansirajući studenata - prva godina','Broj stranih studenata - prva godina']].sum(axis=1)
studenti['Studenti druga godina'] = studenti[['Broj budžetskih studenata - druga godina','Broj samofinansirajući studenata - druga godina','Broj stranih studenata - druga godina']].sum(axis=1)
studenti['Studenti treća godina'] = studenti[['Broj budžetskih studenata - treća godina','Broj samofinansirajući studenata - treća godina','Broj stranih studenata - treća godina']].sum(axis=1)
studenti['Studenti četvrta godina'] = studenti[['Broj budžetskih studenata - četvrta godina','Broj samofinansirajući studenata - četvrta godina','Broj stranih studenata - četvrta godina']].sum(axis=1)
studenti['Studenti peta godina'] = studenti[['Broj budžetskih studenata - peta godina','Broj samofinansirajući studenata - peta godina','Broj stranih studenata - peta godina']].sum(axis=1)
studenti['Studenti šesta godina'] = studenti[['Broj budžetskih studenata - šesta godina','Broj samofinansirajući studenata - šesta godina','Broj stranih studenata - šesta godina']].sum(axis=1)
Високо образовање груписано је у пар поља која можемо видети излиставањем јединствених вредности у овој колони користећи функцију unique. На исти начин можете истражити и остале текстуалне колоне које вас занимају, испробајте!
studenti.Polje.unique()
array(['Друштвено-хуманистичке науке', 'Техничко-технолошке науке', 'Природно-математичке науке', 'Интердисциплинарне, мултидисциплинарне, трансдисциплинарне (ИМТ) и двопредметне студије', 'Уметност', 'Медицинске науке'], dtype=object)
Често ћемо желети да цртамо графике који могу бити обојени или означени образовним пољима којима припадају студијски програми, стога нам је згодно да скратимо њихове називе, то можемо урадити следећом функциојом:
def mapiranjepolja(text):
temp=''
if text=='Друштвено-хуманистичке науке':
temp='DH'
if text=='Техничко-технолошке науке':
temp='TT'
if text=='Природно-математичке науке':
temp='PM'
if text=='Интердисциплинарне, мултидисциплинарне, трансдисциплинарне (ИМТ) и двопредметне студије':
temp='IMT'
if text=='Уметност':
temp='UM'
if text=='Медицинске науке':
temp='MD'
return(temp)
Користећи функцију apply лако можемо применити једноставну функцију, као ову коју смо претходно направили (mapiranjepolja) на сваки елемент неке колоне:
studenti['Polje_skraceno'] = studenti.Polje.apply(mapiranjepolja)
studenti.head(2)
# | ID ustanove | Univerzitet | Naziv ustanove | Tip ustanove | ID programa | Naziv programa | Zvanje | Polje | Nivo | ... | Dužina trajanja programa (u semestrima) | Dužina trajanja programa (u god) | Broj prijavljenih kandidata | Studenti prva godina | Studenti druga godina | Studenti treća godina | Studenti četvrta godina | Studenti peta godina | Studenti šesta godina | Polje_skraceno | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1.0 | 82 | Универзитет у Приштини | Правни факултет, Косовска Митровица | Државни факултет | 16 | ОАС | Дипломирани правник | Друштвено-хуманистичке науке | Основне академске | ... | 8 | 4 | 104.0 | 129.0 | 182.0 | 211.0 | 432.0 | 0.0 | 0.0 | DH |
1 | 2.0 | 62 | Универзитет у Новом Саду | Факултет техничких наука | Државни факултет | 616 | Инжењерски менаџмент (SSS) | Специјалиста струковни инжењер менаџмента | Техничко-технолошке науке | Спец. струковне | ... | 2 | 1 | 29.0 | 40.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT |
2 rows × 51 columns
Слично можемо видети и које универзитете имамо међу подацима:
studenti['Univerzitet'].unique()
array(['Универзитет у Приштини', 'Универзитет у Новом Саду', 'Универзитет у Нишу', 'Универзитет у Београду', 'Универзитет у Крагујевцу', 'Универзитет уметности у Београду', 'Државни Универзитет у Новом Пазару', nan, 'Универзитет Сингидунум', 'Универзитет Унион - Никола Тесла', 'Универзитет Мегатренд', 'Универзитет одбране', 'Универзитет Едуконс', 'Универзитет Алфа БК'], dtype=object)
Како имамо у подацима и неке од приватних универзитета згодно је увести колону власништва која може згодно доћи у наставку анализе:
def mapiranjeuniverziteta(text):
if text in ['Универзитет у Приштини', 'Универзитет у Новом Саду',
'Универзитет у Нишу', 'Универзитет у Београду',
'Универзитет у Крагујевцу', 'Универзитет уметности у Београду',
'Државни Универзитет у Новом Пазару', 'Универзитет одбране']:
return 'Државни факултет'
elif text in ['Универзитет Сингидунум', 'Универзитет Унион - Никола Тесла',
'Универзитет Мегатренд', 'Универзитет Едуконс', 'Универзитет Алфа БК']:
return 'Приватни факултет'
else:
return ''
studenti['Vlasnistvo']=studenti['Univerzitet'].apply(mapiranjeuniverziteta)
studenti.head(2)
# | ID ustanove | Univerzitet | Naziv ustanove | Tip ustanove | ID programa | Naziv programa | Zvanje | Polje | Nivo | ... | Dužina trajanja programa (u god) | Broj prijavljenih kandidata | Studenti prva godina | Studenti druga godina | Studenti treća godina | Studenti četvrta godina | Studenti peta godina | Studenti šesta godina | Polje_skraceno | Vlasnistvo | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1.0 | 82 | Универзитет у Приштини | Правни факултет, Косовска Митровица | Државни факултет | 16 | ОАС | Дипломирани правник | Друштвено-хуманистичке науке | Основне академске | ... | 4 | 104.0 | 129.0 | 182.0 | 211.0 | 432.0 | 0.0 | 0.0 | DH | Државни факултет |
1 | 2.0 | 62 | Универзитет у Новом Саду | Факултет техничких наука | Државни факултет | 616 | Инжењерски менаџмент (SSS) | Специјалиста струковни инжењер менаџмента | Техничко-технолошке науке | Спец. струковне | ... | 1 | 29.0 | 40.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | Државни факултет |
2 rows × 52 columns
studenti['Vlasnistvo'].unique()
array(['Државни факултет', '', 'Приватни факултет'], dtype=object)
Додатним увидом можемо проверити шта су програми код којих смо власништво оставили празно, и испоставља се да су у питању високе школе:
studenti[studenti.Vlasnistvo=='']
# | ID ustanove | Univerzitet | Naziv ustanove | Tip ustanove | ID programa | Naziv programa | Zvanje | Polje | Nivo | ... | Dužina trajanja programa (u god) | Broj prijavljenih kandidata | Studenti prva godina | Studenti druga godina | Studenti treća godina | Studenti četvrta godina | Studenti peta godina | Studenti šesta godina | Polje_skraceno | Vlasnistvo | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
253 | 254.0 | 127 | NaN | В.техничка школа струковних студија, Ниш | Државна висока школа | 30 | Индустријско инжењерство | Струковни инжењер индустријског инжењерства | Техничко-технолошке науке | Основне струковне | ... | 3 | 51.0 | 60.0 | 40.0 | 65.0 | 0.0 | 0.0 | 0.0 | TT | |
254 | 255.0 | 127 | NaN | В.техничка школа струковних студија, Ниш | Државна висока школа | 31 | Друмски саобраћај | Струковни инжењер саобраћаја | Техничко-технолошке науке | Основне струковне | ... | 3 | 87.0 | 60.0 | 60.0 | 50.0 | 0.0 | 0.0 | 0.0 | TT | |
255 | 256.0 | 127 | NaN | В.техничка школа струковних студија, Ниш | Државна висока школа | 32 | Савремене рачунарске технологије | Струковни инжењер електротехнике и рачунарства | Техничко-технолошке науке | Основне струковне | ... | 3 | 86.0 | 47.0 | 46.0 | 67.0 | 0.0 | 0.0 | 0.0 | TT | |
256 | 257.0 | 127 | NaN | В.техничка школа струковних студија, Ниш | Државна висока школа | 33 | Комуникационе технологије | Струковни инжењер електротехнике и рачунарства | Техничко-технолошке науке | Основне струковне | ... | 3 | 52.0 | 60.0 | 33.0 | 74.0 | 0.0 | 0.0 | 0.0 | TT | |
257 | 258.0 | 127 | NaN | В.техничка школа струковних студија, Ниш | Државна висока школа | 34 | Грађевинско инжењерство | Струковни инжењер грађевинарства | Техничко-технолошке науке | Основне струковне | ... | 3 | 17.0 | 55.0 | 31.0 | 71.0 | 0.0 | 0.0 | 0.0 | TT | |
258 | 259.0 | 127 | NaN | В.техничка школа струковних студија, Ниш | Државна висока школа | 35 | Заштита животне средине | Струковни инжењер заштите животне средине | Техничко-технолошке науке | Основне струковне | ... | 3 | 27.0 | 60.0 | 34.0 | 76.0 | 0.0 | 0.0 | 0.0 | TT | |
259 | 260.0 | 127 | NaN | В.техничка школа струковних студија, Ниш | Државна висока школа | 37 | Безбедност друмског саобраћаја | Специјалиста струковни инжењер саобраћаја | Техничко-технолошке науке | Спец. струковне | ... | 1 | 0.0 | 25.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
260 | 261.0 | 127 | NaN | В.техничка школа струковних студија, Ниш | Државна висока школа | 40 | Комунално инжењерство | Специјалиста струковни инжењер грађевинарства | Техничко-технолошке науке | Спец. струковне | ... | 1 | 0.0 | 25.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
261 | 262.0 | 132 | NaN | Висока школа струковних студија за васпитаче А... | Државна висока школа | 57 | Образовање струковних васпитача за рад у предш... | Струковни васпитач | Друштвено-хуманистичке науке | Основне струковне | ... | 3 | 88.0 | 88.0 | 91.0 | 106.0 | 0.0 | 0.0 | 0.0 | DH | |
262 | 263.0 | 132 | NaN | Висока школа струковних студија за васпитаче А... | Државна висока школа | 59 | Специјалиста за припремни предшколски програм | Специјалиста струковни васпитач | Друштвено-хуманистичке науке | Спец. струковне | ... | 1 | 24.0 | 24.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
263 | 264.0 | 144 | NaN | Висока техничка школа струковних студија - Зре... | Државна висока школа | 68 | Технолошко инжењерство | Струковни инжењер технологије | Техничко-технолошке науке | Основне струковне | ... | 3 | 33.0 | 52.0 | 35.0 | 64.0 | 0.0 | 0.0 | 0.0 | TT | |
264 | 265.0 | 144 | NaN | Висока техничка школа струковних студија - Зре... | Државна висока школа | 69 | Машинско инжењерство | Струковни инжењер машинства | Техничко-технолошке науке | Основне струковне | ... | 3 | 35.0 | 49.0 | 8.0 | 19.0 | 0.0 | 0.0 | 0.0 | TT | |
265 | 266.0 | 144 | NaN | Висока техничка школа струковних студија - Зре... | Државна висока школа | 74 | Текстилна конфекција и моделирање | Струковни инжењер технологије | Техничко-технолошке науке | Основне струковне | ... | 3 | 0.0 | 0.0 | 1.0 | 5.0 | 0.0 | 0.0 | 0.0 | TT | |
266 | 267.0 | 144 | NaN | Висока техничка школа струковних студија - Зре... | Државна висока школа | 76 | Инжењеpски менаџмент | Струковни инжењер менаџмента | Техничко-технолошке науке | Основне струковне | ... | 3 | 12.0 | 0.0 | 0.0 | 19.0 | 0.0 | 0.0 | 0.0 | TT | |
267 | 268.0 | 144 | NaN | Висока техничка школа струковних студија - Зре... | Државна висока школа | 2211 | Инжењерски менаџмент у кризним условим | Струковни инжењер менаџемента | Техничко-технолошке науке | Основне струковне | ... | 3 | 21.0 | 23.0 | 20.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
268 | 269.0 | 110 | NaN | Висока здравствена школа струковних студија Бе... | Државна висока школа | 89 | СТРУКОВНА МЕДИЦИНСКА СЕСТРА-БАБИЦА | Струковна медицинска сестра - бабица | Медицинске науке | Основне струковне | ... | 3 | 98.0 | 85.0 | 95.0 | 128.0 | 0.0 | 0.0 | 0.0 | MD | |
269 | 270.0 | 110 | NaN | Висока здравствена школа струковних студија Бе... | Државна висока школа | 90 | СТРУКОВНИ САНИТАРНО ЕКОЛОШКИ ИНЖЕЊЕР | Струковни санитарно еколошки инжењер | Медицинске науке | Основне струковне | ... | 3 | 80.0 | 82.0 | 91.0 | 108.0 | 0.0 | 0.0 | 0.0 | MD | |
270 | 271.0 | 110 | NaN | Висока здравствена школа струковних студија Бе... | Државна висока школа | 91 | СТРУКОВНИ МЕДИЦИНСКИ РАДИОЛОГ | Струковни медицински радиолог | Медицинске науке | Основне академске | ... | 3 | 356.0 | 86.0 | 105.0 | 148.0 | 0.0 | 0.0 | 0.0 | MD | |
271 | 272.0 | 110 | NaN | Висока здравствена школа струковних студија Бе... | Државна висока школа | 92 | СТРУКОВНИ ФИЗИОТЕРАПЕУТ | Струковни физиотерпеут | Медицинске науке | Основне струковне | ... | 3 | 300.0 | 111.0 | 139.0 | 189.0 | 0.0 | 0.0 | 0.0 | MD | |
272 | 273.0 | 110 | NaN | Висока здравствена школа струковних студија Бе... | Државна висока школа | 93 | СТРУКОВНИ РАДНИ ТЕРАПЕУТ | Струковни радни терапеут | Медицинске науке | Основне струковне | ... | 3 | 91.0 | 64.0 | 61.0 | 93.0 | 0.0 | 0.0 | 0.0 | MD | |
273 | 274.0 | 110 | NaN | Висока здравствена школа струковних студија Бе... | Државна висока школа | 94 | СТРУКОВНИ МЕДИЦИНСКО ЛАБОРАТОРИЈСКИ ТЕХНОЛОГ | Струковни медицинско лабораторијски технолог | Медицинске науке | Основне струковне | ... | 3 | 101.0 | 50.0 | 49.0 | 88.0 | 0.0 | 0.0 | 0.0 | MD | |
274 | 275.0 | 110 | NaN | Висока здравствена школа струковних студија Бе... | Државна висока школа | 95 | СТРУКОВНИ НУТРИЦИОНИСТА ДИЈЕТЕТИЧАР | Струковни нутрициониста дијететичар | Медицинске науке | Основне струковне | ... | 3 | 94.0 | 51.0 | 44.0 | 57.0 | 0.0 | 0.0 | 0.0 | MD | |
275 | 276.0 | 110 | NaN | Висока здравствена школа струковних студија Бе... | Државна висока школа | 96 | СТРУКОВНИ КОЗМЕТИЧАР ЕСТЕТИЧАР | Струковни козметичар естетичар | Медицинске науке | Основне струковне | ... | 3 | 83.0 | 48.0 | 49.0 | 58.0 | 0.0 | 0.0 | 0.0 | MD | |
276 | 277.0 | 113 | NaN | Висока школа струковних студија-Београдсак пол... | Државна висока школа | 124 | Графички дизајн | Струковни дизајнер | Уметност | Основне струковне | ... | 3 | 153.0 | 66.0 | 56.0 | 197.0 | 0.0 | 0.0 | 0.0 | UM | |
277 | 278.0 | 113 | NaN | Висока школа струковних студија-Београдсак пол... | Државна висока школа | 126 | Дизајн индустријских производа | Струковни дизајнер | Уметност | Основне струковне | ... | 3 | 153.0 | 46.0 | 43.0 | 101.0 | 0.0 | 0.0 | 0.0 | UM | |
278 | 279.0 | 113 | NaN | Висока школа струковних студија-Београдсак пол... | Државна висока школа | 128 | Модни дизајн производа од коже | Струковни дизајнер | Уметност | Основне струковне | ... | 3 | 153.0 | 44.0 | 33.0 | 59.0 | 0.0 | 0.0 | 0.0 | UM | |
279 | 280.0 | 113 | NaN | Висока школа струковних студија-Београдсак пол... | Државна висока школа | 132 | Менаџмент квалитетом | Струковни инжењер менаџмента | Техничко-технолошке науке | Основне струковне | ... | 3 | 10.0 | 61.0 | 27.0 | 51.0 | 0.0 | 0.0 | 0.0 | TT | |
280 | 281.0 | 113 | NaN | Висока школа струковних студија-Београдсак пол... | Државна висока школа | 129 | Безбедност и здравље на раду | Струковни инжењер заштите на раду | Техничко-технолошке науке | Основне струковне | ... | 3 | 32.0 | 90.0 | 34.0 | 45.0 | 0.0 | 0.0 | 0.0 | TT | |
281 | 282.0 | 113 | NaN | Висока школа струковних студија-Београдсак пол... | Државна висока школа | 131 | Графичка технологија | Струковни инжењер технологије | Техничко-технолошке науке | Основне струковне | ... | 3 | 8.0 | 49.0 | 14.0 | 38.0 | 0.0 | 0.0 | 0.0 | TT | |
282 | 283.0 | 116 | NaN | В.ш.струк.студија за иформац.и комуникац.техно... | Државна висока школа | 134 | Интернет технологије | Струковни инжењер електротехнике и рачунарства | Техничко-технолошке науке | Основне струковне | ... | 3 | 419.0 | 199.0 | 147.0 | 223.0 | 43.0 | 0.0 | 0.0 | TT | |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
1863 | 1864.0 | 142 | NaN | Висока техничка школа струковних студија - Нов... | Државна висока школа | 2261 | Информационе технологије | Струковни инжењер електротехнике и рачунарства | Техничко-технолошке науке | Основне струковне | ... | 3 | 125.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1864 | 1865.0 | 142 | NaN | Висока техничка школа струковних студија - Нов... | Државна висока школа | 2262 | Веб дизајн | Струковни инжењер електротехнике и рачунарства | Техничко-технолошке науке | Основне струковне | ... | 3 | 44.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1865 | 1866.0 | 126 | NaN | Висока техничка школа струковних студија, Краг... | Државна висока школа | 2332 | Привредно инжењерство-машинство | Инжењер машинства | Техничко-технолошке науке | Основне струковне | ... | 3 | 31.0 | 32.0 | 31.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1866 | 1867.0 | 103 | NaN | Висока пословна школа струковних студија Лесковац | Државна висока школа | 2264 | Пословна информатика и е-бизнис | Струковни информатичар | Друштвено-хуманистичке науке | Основне струковне | ... | 3 | 31.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1867 | 1868.0 | 103 | NaN | Висока пословна школа струковних студија Лесковац | Државна висока школа | 2265 | Финансије, рачуноводство и банкарство | Струковни економиста | Друштвено-хуманистичке науке | Основне струковне | ... | 3 | 42.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1868 | 1869.0 | 103 | NaN | Висока пословна школа струковних студија Лесковац | Државна висока школа | 2266 | Менаџмент бизниса и логистике | Струковни менаџер | Друштвено-хуманистичке науке | Основне струковне | ... | 3 | 42.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1869 | 1870.0 | 105 | NaN | В.ш.електротехнике и рачунарства струковних ст... | Државна висока школа | 2267 | Информациони системи | Струковни инжењер електротехнике и рачунарства | Техничко-технолошке науке | Основне струковне | ... | 3 | 95.0 | 103.0 | 79.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1870 | 1871.0 | 105 | NaN | В.ш.електротехнике и рачунарства струковних ст... | Државна висока школа | 2268 | Еколошки инжењеринг | Струковни инжењер заштите животне средине | Техничко-технолошке науке | Основне струковне | ... | 3 | 16.0 | 14.0 | 11.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1871 | 1872.0 | 108 | NaN | В.техничка машинска школа струковних студија, ... | Државна висока школа | 2269 | Друмски саобраћај | Струковни инжењер саобраћаја | Техничко-технолошке науке | Основне струковне | ... | 3 | 0.0 | 94.0 | 70.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1872 | 1873.0 | 108 | NaN | В.техничка машинска школа струковних студија, ... | Државна висока школа | 2270 | Машинско инжењерство | Струковни инжењер машинства | Техничко-технолошке науке | Основне струковне | ... | 3 | 0.0 | 36.0 | 18.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1873 | 1874.0 | 104 | NaN | Висока пословна школа струковних студија, Ваљево | Државна висока школа | 2271 | Пословна економија | Струковни економиста | Друштвено-хуманистичке науке | Основне струковне | ... | 3 | 130.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1874 | 1875.0 | 104 | NaN | Висока пословна школа струковних студија, Ваљево | Државна висока школа | 2272 | Пословна информатика | Струковни пословни информатичар | Друштвено-хуманистичке науке | Основне струковне | ... | 3 | 53.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1875 | 1876.0 | 140 | NaN | Висока школа струковних студија за образовање ... | Државна висока школа | 2273 | Васпитач деце предшколског узраста на српском,... | Струковни васпитач | Друштвено-хуманистичке науке | Основне академске | ... | 3 | 54.0 | 60.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1876 | 1877.0 | 121 | NaN | Висока струковна школа за текстил, Лесковац | Државна висока школа | 2274 | осс Текстилно инжењерство | Струковни инжењер технологије | Техничко-технолошке науке | Основне струковне | ... | 3 | 28.0 | 29.0 | 16.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1877 | 1878.0 | 121 | NaN | Висока струковна школа за текстил, Лесковац | Државна висока школа | 2275 | осс безбедност радне и животне средине | Струковни инжењер заштите на раду | Техничко-технолошке науке | Основне струковне | ... | 3 | 25.0 | 25.0 | 21.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1878 | 1879.0 | 101 | NaN | Висока техничка школа струковних студија Звечан | Државна висока школа | 2276 | Мултимедијалне технологије | Струковни инжењер електротехнике и рачунарства | Техничко-технолошке науке | Основне струковне | ... | 3 | 19.0 | 25.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1879 | 1880.0 | 128 | NaN | Висока пословно-техничка школа струковних студ... | Државна висока школа | 2277 | Унутрашња архитектура ОС | Специјалиста из области урбане обнове - Спец. ... | Техничко-технолошке науке | Основне струковне | ... | 3 | 22.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1880 | 1881.0 | 102 | NaN | Висока пословна школа струковних студија-Блаце | Државна висока школа | 2279 | Пословна економија | Струковни економиста | Друштвено-хуманистичке науке | Основне струковне | ... | 3 | 24.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1881 | 1882.0 | 128 | NaN | Висока пословно-техничка школа струковних студ... | Државна висока школа | 2284 | Безбедност и здравље на раду | Мастер аналитичар заштите животне средине | Техничко-технолошке науке | Мастер академске | ... | 2 | 2.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1882 | 1883.0 | 141 | NaN | Висока пословна школа струковних студија - Нов... | Државна висока школа | 2286 | Финансије и банкарство 17 | Струковни економиста | Друштвено-хуманистичке науке | Основне струковне | ... | 3 | 71.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1883 | 1884.0 | 102 | NaN | Висока пословна школа струковних студија-Блаце | Државна висока школа | 2287 | Јавне финансије | Специјалиста струковни економиста | Друштвено-хуманистичке науке | Спец. академске | ... | 1 | 7.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1884 | 1885.0 | 135 | NaN | Висока школа струковних студија за васпитаче, ... | Државна висока школа | 2288 | Струковни мастер васпитач | Мастер васпитач | Друштвено-хуманистичке науке | Мастер академске | ... | 2 | 58.0 | 57.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1885 | 1886.0 | 104 | NaN | Висока пословна школа струковних студија, Ваљево | Државна висока школа | 2294 | Пословна економија и информатика | Мастер економиста | Друштвено-хуманистичке науке | Мастер академске | ... | 2 | 50.0 | 49.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1886 | 1887.0 | 133 | NaN | Висока школа струковних студија за васпитаче К... | Државна висока школа | 2302 | Струковни васпитач - Рад са децом из осетљивих... | Специјалиста струковни васпитач | Друштвено-хуманистичке науке | Спец. струковне | ... | 1 | 14.0 | 14.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1887 | 1888.0 | 108 | NaN | В.техничка машинска школа струковних студија, ... | Државна висока школа | 2303 | Информационе технологије | Струковни информатичар | Техничко-технолошке науке | Основне струковне | ... | 3 | 0.0 | 86.0 | 65.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1888 | 1889.0 | 126 | NaN | Висока техничка школа струковних студија, Краг... | Државна висока школа | 2357 | Друмски саобраћај- мастер струковне студије | Мастер инжењер саобраћаја | Техничко-технолошке науке | Мастер академске | ... | 2 | 13.0 | 13.0 | 10.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1889 | 1890.0 | 115 | NaN | В.пољопривредна школа струковних студија, Шабац | Државна висока школа | 2356 | Менаџмент | Струковни менаџер | Друштвено-хуманистичке науке | Основне струковне | ... | 3 | 18.0 | 18.0 | 13.0 | 0.0 | 0.0 | 0.0 | 0.0 | DH | |
1890 | 1891.0 | 108 | NaN | В.техничка машинска школа струковних студија, ... | Државна висока школа | 2392 | Мастер Информационе технологије | Мастер инжењер информационих технологија | Техничко-технолошке науке | Мастер академске | ... | 2 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1891 | 1892.0 | 115 | NaN | В.пољопривредна школа струковних студија, Шабац | Државна висока школа | 2358 | Биотехнологија | Струковни инжењер пољопривреде | Техничко-технолошке науке | Основне струковне | ... | 3 | 14.0 | 14.0 | 10.0 | 0.0 | 0.0 | 0.0 | 0.0 | TT | |
1923 | 1924.0 | 246 | NaN | Висока медицинска школа струковних студија Мил... | Државна висока школа | 2198 | Струковна медицинска сестра-техничар | Струковна медицинска сестра | Медицинске науке | Основне струковне | ... | 3 | 0.0 | 36.0 | 53.0 | 56.0 | 0.0 | 0.0 | 0.0 | MD |
423 rows × 52 columns
Да бисмо погледати број студената по различитим нивоима студирања, то можемо једноставно урадити користећи функцију groupby и сумирати вредносту колоне Broj studenata по групама:
studenti.groupby(studenti.Nivo)['Broj studenata'].sum()
Nivo Докторске академске 11628.0 Интегр. академске 19623.0 Мастер академске 24006.0 Основне академске 140053.0 Основне струковне 42867.0 Спец. академске 718.0 Спец. струковне 3072.0 Name: Broj studenata, dtype: float64
За даљу анализу, фокусираћемо се само на основне и интегрисане студије (у којима су основне и мастер студије интегрисане):
studenti = studenti[(studenti.Nivo=='Интегр. академске')|(studenti.Nivo=='Основне академске')]
studenti = studenti.reset_index()
Број студената на последњој години студија:
stud_posl=[]
for index, row in studenti.iterrows():
if ((index%10)==50):
print(index)
posl=-1
if row['Dužina trajanja programa (u god)']==3:
posl=row['Studenti treća godina']
elif row['Dužina trajanja programa (u god)']==4:
posl=row['Studenti četvrta godina']
elif row['Dužina trajanja programa (u god)']==5:
posl=row['Studenti peta godina']
elif row['Dužina trajanja programa (u god)']==6:
posl=row['Studenti šesta godina']
else:
print(row['Dužina trajanja programa (u god)'])
if posl==-1:
print(row['Dužina trajanja programa (u god)'],row['Naziv ustanove'])
else:
stud_posl.append(posl)
studenti['Broj studenata na zavrsnoj godini']=stud_posl
Ову табелу studenti која садржи све смерове основних и интегрисаних студија можемо сачувати у посебан .csv фајл уколико желимо детаљно све смерове да анализирамо:
studenti.to_csv('studenti_osnovnih_studija.csv',index=False)
Међутим, направићемо још једну верзију табеле, у којој ћемо агрегирати податке по установама и дужинама трајања програма (тј. ако неки факултет има више смерова који једнако дуго трају, воде истом звању и припадају истом пољу, сабираћемо укупан број студената на тим програмима). На тај начин заобилазимо проблем настао чињеницом да неки програрми настају и нестају, или само мењају имена. То ћемо опет урадити груписањем, овај пут користећи више колона:
studenti_agregirano = pd.DataFrame(studenti.groupby(['Naziv ustanove','Univerzitet','Nivo','Zvanje','Dužina trajanja programa (u god)','Polje_skraceno','Vlasnistvo'])[['Akreditaciona kvota','Broj studenata','Broj prijavljenih kandidata','Broj svršenih studenata tokom prethodne školske godine','Studenti prva godina','Studenti druga godina','Studenti treća godina','Studenti četvrta godina','Studenti peta godina','Studenti šesta godina','Broj budžetskih studenata', 'Broj samofinansirajućih studenata',
'Broj stranih studenata','Broj studenata na zavrsnoj godini']].sum())
studenti_agregirano.head(2)
Akreditaciona kvota | Broj studenata | Broj prijavljenih kandidata | Broj svršenih studenata tokom prethodne školske godine | Studenti prva godina | Studenti druga godina | Studenti treća godina | Studenti četvrta godina | Studenti peta godina | Studenti šesta godina | Broj budžetskih studenata | Broj samofinansirajućih studenata | Broj stranih studenata | Broj studenata na zavrsnoj godini | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Naziv ustanove | Univerzitet | Nivo | Zvanje | Dužina trajanja programa (u god) | Polje_skraceno | Vlasnistvo | ||||||||||||||
Агрономски факултет, Чачак | Универзитет у Крагујевцу | Основне академске | Дипломирани инжењер пољопривреде | 4 | TT | Државни факултет | 60.0 | 174.0 | 36.0 | 15 | 50.0 | 29.0 | 36.0 | 28.0 | 31.0 | 0.0 | 132.0 | 42.0 | 0.0 | 28.0 |
Дипломирани инжењер технологије | 4 | TT | Државни факултет | 40.0 | 69.0 | 20.0 | 3 | 22.0 | 19.0 | 14.0 | 10.0 | 4.0 | 0.0 | 39.0 | 30.0 | 0.0 | 10.0 |
Након инструкције груписања увек настаје нова табела која је индексирана по колонама које су коришћене за груписање (што видимо у претходном испису). Међутим, често ће нам бити једноставније да имамо једну индексну колону која садржи редне бројеве па ћемо искористити функцију reset_index:
studenti_agregirano = studenti_agregirano.reset_index()
studenti_agregirano.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 369 entries, 0 to 368 Data columns (total 21 columns): Naziv ustanove 369 non-null object Univerzitet 369 non-null object Nivo 369 non-null object Zvanje 369 non-null object Dužina trajanja programa (u god) 369 non-null int64 Polje_skraceno 369 non-null object Vlasnistvo 369 non-null object Akreditaciona kvota 369 non-null float64 Broj studenata 369 non-null float64 Broj prijavljenih kandidata 369 non-null float64 Broj svršenih studenata tokom prethodne školske godine 369 non-null int64 Studenti prva godina 369 non-null float64 Studenti druga godina 369 non-null float64 Studenti treća godina 369 non-null float64 Studenti četvrta godina 369 non-null float64 Studenti peta godina 369 non-null float64 Studenti šesta godina 369 non-null float64 Broj budžetskih studenata 369 non-null float64 Broj samofinansirajućih studenata 369 non-null float64 Broj stranih studenata 369 non-null float64 Broj studenata na zavrsnoj godini 369 non-null float64 dtypes: float64(13), int64(2), object(6) memory usage: 60.6+ KB
Ова агрегирана табела има неке колоне у којима су текстуални подаци па ћемо и све вреднсоти у тим колонама променити у латинично писмо користећи код у наставку:
lista_kolona_za_izmenu = ['Naziv ustanove','Univerzitet','Nivo','Zvanje','Vlasnistvo']
for kolona in lista_kolona_za_izmenu:
studenti_agregirano[kolona] = [cyrtranslit.to_latin(text,'sr') for text in list(studenti_agregirano[kolona])]
studenti_agregirano.head(2)
Naziv ustanove | Univerzitet | Nivo | Zvanje | Dužina trajanja programa (u god) | Polje_skraceno | Vlasnistvo | Akreditaciona kvota | Broj studenata | Broj prijavljenih kandidata | ... | Studenti prva godina | Studenti druga godina | Studenti treća godina | Studenti četvrta godina | Studenti peta godina | Studenti šesta godina | Broj budžetskih studenata | Broj samofinansirajućih studenata | Broj stranih studenata | Broj studenata na zavrsnoj godini | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Agronomski fakultet, Čačak | Univerzitet u Kragujevcu | Osnovne akademske | Diplomirani inženjer poljoprivrede | 4 | TT | Državni fakultet | 60.0 | 174.0 | 36.0 | ... | 50.0 | 29.0 | 36.0 | 28.0 | 31.0 | 0.0 | 132.0 | 42.0 | 0.0 | 28.0 |
1 | Agronomski fakultet, Čačak | Univerzitet u Kragujevcu | Osnovne akademske | Diplomirani inženjer tehnologije | 4 | TT | Državni fakultet | 40.0 | 69.0 | 20.0 | ... | 22.0 | 19.0 | 14.0 | 10.0 | 4.0 | 0.0 | 39.0 | 30.0 | 0.0 | 10.0 |
2 rows × 21 columns
Када баратамо са подацима који настају ручним уношењем на више места (у овом случају на више различитих установа па се ти подаци даље обједињују), честе су грешке или неусаглашености. Загледањем табеле приметили смо један такав пример са Математичким факултетом који ћемо илустровати у наставку. Излистајмо за почетак све редове за које је назив установе Математички факултет:
studenti_agregirano[studenti_agregirano['Naziv ustanove']=='Matematički fakultet']
Naziv ustanove | Univerzitet | Nivo | Zvanje | Dužina trajanja programa (u god) | Polje_skraceno | Vlasnistvo | Akreditaciona kvota | Broj studenata | Broj prijavljenih kandidata | ... | Studenti prva godina | Studenti druga godina | Studenti treća godina | Studenti četvrta godina | Studenti peta godina | Studenti šesta godina | Broj budžetskih studenata | Broj samofinansirajućih studenata | Broj stranih studenata | Broj studenata na zavrsnoj godini | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
63 | Matematički fakultet | Univerzitet u Beogradu | Osnovne akademske | Diplomirani astronom | 4 | PM | Državni fakultet | 25.0 | 70.0 | 915.0 | ... | 40.0 | 12.0 | 6.0 | 12.0 | 0.0 | 0.0 | 32.0 | 38.0 | 0.0 | 12.0 |
64 | Matematički fakultet | Univerzitet u Beogradu | Osnovne akademske | Diplomirani matematičar | 4 | PM | Državni fakultet | 250.0 | 1170.0 | 915.0 | ... | 433.0 | 213.0 | 178.0 | 346.0 | 0.0 | 0.0 | 461.0 | 708.0 | 1.0 | 346.0 |
65 | Matematički fakultet | Univerzitet u Beogradu | Osnovne akademske | Informatičar | 4 | PM | Državni fakultet | 160.0 | 717.0 | 915.0 | ... | 215.0 | 167.0 | 182.0 | 153.0 | 0.0 | 0.0 | 342.0 | 375.0 | 0.0 | 153.0 |
3 rows × 21 columns
Видимо да има три различита усмерења смера основних студија - дипломирани астроном, математичар и информатичар. Видимо да су подаци по колонама углавном различити за ове смерове (што је и очекивано), али видимо да је број пријављених кандидата за сва три усмерења 915. То нам се чини да је маловероватно (то би значило да скоро 3000 студената годишње жели да упише Математички факултет), већ је вероватније да број пријављених кандидата није раздвојен по смеровима, већ је ово укупан број људи који су се пријавили за Математички факултет. Можемо запамтити ову информацију и узети је у обзир у тумачењу резултата у наставку, или решити да и остале податке по колонама агрегирамо и разматрамо заједно цео Математички факултет. Ту опцију ћемо приказати у наставку.
У речнику tekstualne_kolone сачуваћемо све податке који се налазе у текстуалним колонама у вези за Мат. факултетом:
tekstualne_kolone ={'Naziv ustanove':'Matematički fakultet','Univerzitet':'Univerzitet u Beogradu','Nivo':'Osnovne akademske','Zvanje':'Astronom/Matematičar/Informatičar','Dužina trajanja programa (u god)':4,'Polje_skraceno':'PM','Vlasnistvo':'Državni fakultet'}
Док ћемо у речнику numericke_kolone сачувати нумеричке податке до којих ћемо доћи агрегирањем, тј. сабирањем свих вредности по колонама за сва 3 усмерења на Мат. факултету:
numericke_kolone = dict(studenti_agregirano[studenti_agregirano['Naziv ustanove']=='Matematički fakultet'][['Akreditaciona kvota', 'Broj studenata', 'Broj prijavljenih kandidata',
'Broj svršenih studenata tokom prethodne školske godine',
'Studenti prva godina', 'Studenti druga godina',
'Studenti treća godina', 'Studenti četvrta godina',
'Studenti peta godina', 'Studenti šesta godina',
'Broj budžetskih studenata', 'Broj samofinansirajućih studenata',
'Broj stranih studenata', 'Broj studenata na zavrsnoj godini']].sum())
Објединичемо све ове податке у један речник:
tekstualne_kolone.update(numericke_kolone)
tekstualne_kolone
{'Naziv ustanove': 'Matematički fakultet', 'Univerzitet': 'Univerzitet u Beogradu', 'Nivo': 'Osnovne akademske', 'Zvanje': 'Astronom/Matematičar/Informatičar', 'Dužina trajanja programa (u god)': 4, 'Polje_skraceno': 'PM', 'Vlasnistvo': 'Državni fakultet', 'Akreditaciona kvota': 435.0, 'Broj studenata': 1957.0, 'Broj prijavljenih kandidata': 2745.0, 'Broj svršenih studenata tokom prethodne školske godine': 125.0, 'Studenti prva godina': 688.0, 'Studenti druga godina': 392.0, 'Studenti treća godina': 366.0, 'Studenti četvrta godina': 511.0, 'Studenti peta godina': 0.0, 'Studenti šesta godina': 0.0, 'Broj budžetskih studenata': 835.0, 'Broj samofinansirajućih studenata': 1121.0, 'Broj stranih studenata': 1.0, 'Broj studenata na zavrsnoj godini': 511.0}
На овај начин смо агрегирали и податке у колони од које је све кренуло - број пријављених студената - па треба променити ту вредност:
tekstualne_kolone['Broj prijavljenih kandidata']=tekstualne_kolone['Broj prijavljenih kandidata']/3
tekstualne_kolone
{'Naziv ustanove': 'Matematički fakultet', 'Univerzitet': 'Univerzitet u Beogradu', 'Nivo': 'Osnovne akademske', 'Zvanje': 'Astronom/Matematičar/Informatičar', 'Dužina trajanja programa (u god)': 4, 'Polje_skraceno': 'PM', 'Vlasnistvo': 'Državni fakultet', 'Akreditaciona kvota': 435.0, 'Broj studenata': 1957.0, 'Broj prijavljenih kandidata': 915.0, 'Broj svršenih studenata tokom prethodne školske godine': 125.0, 'Studenti prva godina': 688.0, 'Studenti druga godina': 392.0, 'Studenti treća godina': 366.0, 'Studenti četvrta godina': 511.0, 'Studenti peta godina': 0.0, 'Studenti šesta godina': 0.0, 'Broj budžetskih studenata': 835.0, 'Broj samofinansirajućih studenata': 1121.0, 'Broj stranih studenata': 1.0, 'Broj studenata na zavrsnoj godini': 511.0}
Коначно, можемо овај речник додати као један нови ред у табелу коју посматрамо:
studenti_agregirano = studenti_agregirano.append(tekstualne_kolone,ignore_index=True)
studenti_agregirano[studenti_agregirano['Naziv ustanove']=='Matematički fakultet']
Naziv ustanove | Univerzitet | Nivo | Zvanje | Dužina trajanja programa (u god) | Polje_skraceno | Vlasnistvo | Akreditaciona kvota | Broj studenata | Broj prijavljenih kandidata | ... | Studenti prva godina | Studenti druga godina | Studenti treća godina | Studenti četvrta godina | Studenti peta godina | Studenti šesta godina | Broj budžetskih studenata | Broj samofinansirajućih studenata | Broj stranih studenata | Broj studenata na zavrsnoj godini | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
63 | Matematički fakultet | Univerzitet u Beogradu | Osnovne akademske | Diplomirani astronom | 4 | PM | Državni fakultet | 25.0 | 70.0 | 915.0 | ... | 40.0 | 12.0 | 6.0 | 12.0 | 0.0 | 0.0 | 32.0 | 38.0 | 0.0 | 12.0 |
64 | Matematički fakultet | Univerzitet u Beogradu | Osnovne akademske | Diplomirani matematičar | 4 | PM | Državni fakultet | 250.0 | 1170.0 | 915.0 | ... | 433.0 | 213.0 | 178.0 | 346.0 | 0.0 | 0.0 | 461.0 | 708.0 | 1.0 | 346.0 |
65 | Matematički fakultet | Univerzitet u Beogradu | Osnovne akademske | Informatičar | 4 | PM | Državni fakultet | 160.0 | 717.0 | 915.0 | ... | 215.0 | 167.0 | 182.0 | 153.0 | 0.0 | 0.0 | 342.0 | 375.0 | 0.0 | 153.0 |
369 | Matematički fakultet | Univerzitet u Beogradu | Osnovne akademske | Astronom/Matematičar/Informatičar | 4 | PM | Državni fakultet | 435.0 | 1957.0 | 915.0 | ... | 688.0 | 392.0 | 366.0 | 511.0 | 0.0 | 0.0 | 835.0 | 1121.0 | 1.0 | 511.0 |
4 rows × 21 columns
Сада имамо четири реда која одговарају Математичком факултету, па ћемо у наставку избацити редове који су претходно постојали и фокусирати се само на агрегирани:
studenti_agregirano = studenti_agregirano.drop([63,64,65])
studenti_agregirano[studenti_agregirano['Naziv ustanove']=='Matematički fakultet']
Naziv ustanove | Univerzitet | Nivo | Zvanje | Dužina trajanja programa (u god) | Polje_skraceno | Vlasnistvo | Akreditaciona kvota | Broj studenata | Broj prijavljenih kandidata | ... | Studenti prva godina | Studenti druga godina | Studenti treća godina | Studenti četvrta godina | Studenti peta godina | Studenti šesta godina | Broj budžetskih studenata | Broj samofinansirajućih studenata | Broj stranih studenata | Broj studenata na zavrsnoj godini | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
369 | Matematički fakultet | Univerzitet u Beogradu | Osnovne akademske | Astronom/Matematičar/Informatičar | 4 | PM | Državni fakultet | 435.0 | 1957.0 | 915.0 | ... | 688.0 | 392.0 | 366.0 | 511.0 | 0.0 | 0.0 | 835.0 | 1121.0 | 1.0 | 511.0 |
1 rows × 21 columns
Коначно, сачуваћемо и овај фајл за даљу анализу и визуализацију:
studenti_agregirano.to_csv('studenti_osnovnih_studija_agregirano.csv',index=False)