50 Seeria tükeldamine
Andmete töötlemisel tuleb sageli ette seda, et tervet rida või veergu ei ole vaja analüüsida, soovitakse teha arvutusi vaid näiteks mingile osale veerust. Loome seeria, kus on andmed õpilaste arvude kohta klassis.
andmed = [24, 23, 21, 22, 28, 26, 30, 28, 31, 35, 33, 32, 29, 27, 25, 30, 26, 31, 22] klassid = ['1a', '1b', '2a', '3a', '3b', '4a', '4b', '5a', '6a', '6b', '7a', '8a', '9a', '10 reaal', '10 sotsiaal', '11 reaal', '11 sotsiaal', '12 reaal', '12 sotsiaal'] opilaste_arv = pd.Series(andmed, index = klassid, name = 'Õpilaste arv klassis') print(opilaste_arv)
>>> %Run guido.py 1a 24 1b 23 2a 21 3a 22 3b 28 4a 26 4b 30 5a 28 6a 31 6b 35 7a 33 8a 32 9a 29 10 reaal 27 10 sotsiaal 25 11 reaal 30 11 sotsiaal 26 12 reaal 31 12 sotsiaal 22 Name: Õpilaste arv klassis, dtype: int64
Oletame, et meil on vaja eraldada ainult 1. – 4. klass õpilaste arvud. Seda saab teha kahel moel. Esiteks saab kasutada indekseid. Seda saab teha sarnaselt Pythoni järjendi viilutamisele, kus järjendi muutujanime järel lisatakse nurksulgude vahele soovitud vahemiku algusindeks ja lõppindeks (ei ole kaasa arvatud). Indeksid eraldatakse kooloni abil. Näites kasutatud seerias on algindeksiks 0 ja lõppindeks on 7.
klassid_1_4 = opilaste_arv[0:7] print(klassid_1_4)
>>> %Run guido.py 1a 24 1b 23 2a 21 3a 22 3b 28 4a 26 4b 30 Name: Õpilaste arv klassis, dtype: int64
Teine võimalus on kasutada silte. Sarnaselt eelnevas näites, kus lisasime vastavad indeksid nurksulgude vahele, lisame seekord järjendi, kus elementideks on siltide nimed. Nii on võimalik korraga eraldada andmed erinevate siltide nimega. Loome järjendi, kus elemendid on 1. – 4. klasside sildid ja kasutame seda, sarnaselt eelmisele näitele, nurksulgude vahel.
sildid_1_4 = ['1a', '1b', '2a', '3a', '3b', '4a', '4b'] klassid_1_4 = opilaste_arv[sildid_1_4] print(klassid_1_4)
>>> %Run guido.py 1a 24 1b 23 2a 21 3a 22 3b 28 4a 26 4b 30 Name: Õpilaste arv klassis, dtype: int64
Tulemus tuleb mõlemal juhul täpselt sama.