Рад са табелама помоћу pandas библиотеке¶
Табеле можемо да представимо као низ врста или као низ колона. Конкретно, у Пајтону би то значило да у „велику“ листу ставимо „мале“ листе које представљају врсте или колоне. Рад са тако спакованим табелама није једноставан и захтева писање низа функција за претраживање, издвајање или нпр. копирање делова табеле. Због тога ћемо само показати како то може да изгледа и прећи на следећи ниво – да податке заиста организујемо у табеле. Пракса нам говори да су табеларно сложени подаци најзгоднији за употребу. Базе података све што имају чувају у разним табелама које повезују по одређеним атрибутима или променљивама, како их зовемо у Пајтону. За рад са табелама нам је неопходно да увеземо библиотеку која табелу има као тип података. За ову намену најчешће коришћена библиотека је pandas. У овој лекцији ћемо посветити пажњу употреби основних функција ове библиотеке.
Представљање табеларно задатих података помоћу листи¶
Најчешћи начин да организујемо велике количине података је да их представимо табелом. Рецимо, ова табела садржи податке о једној групи деце (при чему је, наравно, старост изражена у годинама, тежина у килограмима, а висина у центиметрима):
Ime |
Pol |
Starost |
Masa |
Visina |
---|---|---|---|---|
Ana |
ž |
13 |
46 |
160 |
Bojan |
m |
14 |
52 |
165 |
Vlada |
m |
13 |
47 |
157 |
Gordana |
ž |
15 |
54 |
165 |
Dejan |
m |
15 |
56 |
163 |
Đorđe |
m |
13 |
45 |
159 |
Elena |
ž |
14 |
49 |
161 |
Žaklina |
ž |
15 |
52 |
164 |
Zoran |
m |
15 |
57 |
167 |
Ivana |
ž |
13 |
45 |
158 |
Jasna |
ž |
14 |
51 |
162 |
Да бисмо могли машински да обрађујемо и анализирамо податке прво их морамо представити у облику неке структуре података. Један једноставан начин да се то уради је да сваки ред табеле представимо једном листом, и да потом све те листе запакујемо у једну велику листу, рецимо овако:
Из овако представљених података лако можемо добити податке о сваком појединачном детету у групи. Рецимо, податке о Дејану добијамо тако што испишемо елемент листе са индексом 4.
Овај начин представљања података, међутим, није погодан за обраде по колонама. Рецимо, ако желимо да израчунамо просечну висину деце у групи морамо да пишемо програм. То није немогуће, чак није ни тешко, али је непрактично. Ево програма:
Програм ради на следећи начин:
прво помоћну променљиву
sum
поставимо на нулу (у њој ће се полако акумулирати збир висина све деце у групи);након тога циклус
for dete in podaci:
прође кроз свако дете у групи (јер сваки елемент листеpodaci
представља податке о једном детету) и на суму дода његову висину (висина детета се налази на петом месту у групи података за то дете, а то јe елемент листе са индексом 4);коначно, добијени збир поделимо бројем података да бисмо израчунали просек.
Као што смо већ рекли, ово није јако тешко, али је непрактично. Треба нам флексибилнија структура података.