7. Индексирање и транспоновање табеле  · web view7....

120
7. Индексирање и транспоновање табеле У овој лекцији ћемо говорити о: 1. индексирању табеле ради флексибилнијег приступа елементима табеле; 2. приступу врстама и појединачним локацијама индексиране табеле; 3. рачунању са целим редовима и колонама табеле; и 4. транспоновању табеле. 7.1. Индексирање Видели смо да је рад са колонама табеле веома једноставан. Да бисмо могли да радимо са редовима табеле треба прво да нађемо једну колону чија вредност једнозначно одређује цео ред табеле. На пример, у табели са прошлог часа Ime Po l Star ost Mas a Visi na Ana ž 13 46 160 Bojan m 14 52 165 Vlada m 13 47 157 Gorda na ž 15 54 165 Dejan m 15 56 163 Đorđe m 13 45 159 Elena ž 14 49 161

Upload: others

Post on 02-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

7. Индексирање и транспоновање табелеУ овој лекцији ћемо говорити о:

1. индексирању табеле ради флексибилнијег приступа елементима табеле;2. приступу врстама и појединачним локацијама индексиране табеле;3. рачунању са целим редовима и колонама табеле; и4. транспоновању табеле.

7.1. ИндексирањеВидели смо да је рад са колонама табеле веома једноставан.

Да бисмо могли да радимо са редовима табеле треба прво да нађемо једну колону чија вредност једнозначно одређује цео ред табеле. На пример, у табели са прошлог часа

ImePo

lStarost 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

Page 2: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

ImePo

lStarost Masa Visina

Žaklina ž 15 52 164

Zoran m 15 57 167

Ivana ž 13 45 158

Jasna ž 14 51 162

колона "Ime" је таква колона (колона "Visina" није погодна јер имамо двоје деце са висином 165, па када кажемо "дете са висином 165" није јасно о коме се ради; исто тако ни колоне "Pol", "Starost" и "Masa" нису погодне).

Таква колона се зове кључ јер је она кључна за приступање редовима табеле. Ако желимо да приступамо елементима табеле по редовима, морамо систему да пријавимо коју колону ћемо користити као кључ. То се постиже позивом функције set_index којој проследимо име колоне, а она врати нову табелу "индексирану по датом кључу":In [13]:

import pandas as pdpodaci = [["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]]tabela = pd.DataFrame(podaci)tabela.columns=["Ime", "Pol", "Starost", "Masa", "Visina"]tabela1=tabela.set_index("Ime")Нова табела (tabela1) се од старе (tabela) разликује само по томе што редови више нису индексирани бројевима (0, 1, 2, ...) већ именима деце (Ana, Bojan, Vlada, ...). Ево старе (неиндексиране табеле) која има колону "Ime" и чији редови су индексирани бројевима:

Page 3: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [14]:

tabelaOut[14]:

Ime Pol StarostMas

aVisina

0 Ana ž 13 46 160

1 Bojan m 14 52 165

2 Vlada m 13 47 157

3 Gordana ž 15 54 165

4 Dejan m 15 56 163

5 Đorđe m 13 45 159

6 Elena ž 14 49 161

7 Žaklina ž 15 52 164

8 Zoran m 15 57 167

9 Ivana ž 13 45 158

10 Jasna ž 14 51 162

А ево и нове табеле у којој су редови индексирани именима деце:In [15]:

tabela1Out[15]:

Page 4: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Pol

StarostMas

aVisina

Ime

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

Колона "Ime" је и даље присутна у табели tabela1, али има посебан статус. Ако покушамо да јој приступимо као "обичној" колони добићемо грешку:In [16]:

tabela1["Ime"]---------------------------------------------------------------------------KeyError Traceback (most recent call last)~/anaconda3_420/lib/python3.5/site-packages/pandas/indexes/base.py in get_loc(self, key, method, tolerance) 2133 try:-> 2134 return self._engine.get_loc(key) 2135 except KeyError:

Page 5: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4433)()

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4279)()

pandas/src/hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13742)()

pandas/src/hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13696)()

KeyError: 'Ime'

During handling of the above exception, another exception occurred:

KeyError Traceback (most recent call last)<ipython-input-16-b9221308e975> in <module>()----> 1 tabela1["Ime"]

~/anaconda3_420/lib/python3.5/site-packages/pandas/core/frame.py in __getitem__(self, key) 2057 return self._getitem_multilevel(key) 2058 else:-> 2059 return self._getitem_column(key) 2060 2061 def _getitem_column(self, key):

~/anaconda3_420/lib/python3.5/site-packages/pandas/core/frame.py in _getitem_column(self, key) 2064 # get column 2065 if self.columns.is_unique:-> 2066 return self._get_item_cache(key) 2067 2068 # duplicate columns & possible reduce dimensionality

~/anaconda3_420/lib/python3.5/site-packages/pandas/core/generic.py in _get_item_cache(self, item) 1384 res = cache.get(item) 1385 if res is None:-> 1386 values = self._data.get(item) 1387 res = self._box_item_values(item, values) 1388 cache[item] = res

~/anaconda3_420/lib/python3.5/site-packages/pandas/core/internals.py in get(self, item, fastpath)

Page 6: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

3541 3542 if not isnull(item):-> 3543 loc = self.items.get_loc(item) 3544 else: 3545 indexer = np.arange(len(self.items))[isnull(self.items)]

~/anaconda3_420/lib/python3.5/site-packages/pandas/indexes/base.py in get_loc(self, key, method, tolerance) 2134 return self._engine.get_loc(key) 2135 except KeyError:-> 2136 return self._engine.get_loc(self._maybe_cast_indexer(key)) 2137 2138 indexer = self.get_indexer([key], method=method, tolerance=tolerance)

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4433)()

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4279)()

pandas/src/hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13742)()

pandas/src/hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13696)()

KeyError: 'Ime'

Међутим, она је ту као индексна колона:In [17]:

tabela1.indexOut[17]:

Index(['Ana', 'Bojan', 'Vlada', 'Gordana', 'Dejan', 'Đorđe', 'Elena', 'Žaklina', 'Zoran', 'Ivana', 'Jasna'], dtype='object', name='Ime')Ако желимо да прикажемо висину деце у групи графиконом тако да имена деце буду на хоризонталној оси, то сада можемо урадити овако:In [18]:

import matplotlib.pyplot as pltplt.figure(figsize=(10,5))plt.bar(tabela1.index, tabela1["Visina"])plt.title("Visina dece u grupi")

Page 7: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

plt.show()plt.close()

Ознаке на хоризонталној оси узимамо из индексне колоне tabela1.index, док податке о висини стубића узимамо из колоне tabela1["Visina"].

7.2. Приступ врстама и појединачним ћелијама индексиране табелеСтруктура података DataFrame је оптимизована за рад са колонама табеле. Срећом, када имамо индексирану табелу као што је то tabela1, користећи функцију loc (од енгл. location што значи "локација, положај, место") можемо да приступамо редовима табеле, као и појединачним ћелијама табеле.

Податке о појединачним редовима табеле можемо да видимо овако:In [19]:

tabela1.loc["Dejan"]Out[19]:

Pol mStarost 15Masa 56Visina 163Name: Dejan, dtype: objectКао аргумент функције loc можемо да наведемо и распон, и тако ћемо добити одговарајући део табеле:

Page 8: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [20]:

tabela1.loc["Dejan":"Zoran"]Out[20]:

Pol Starost Masa Visina

Ime

Dejan m 15 56 163

Đorđe m 13 45 159

Elena ž 14 49 161

Žaklina ž 15 52 164

Zoran m 15 57 167

Ако као други аргумент функције loc наведемо име колоне, рецимо овако:

tabela1.loc["Dejan", "Visina"]

добићемо информацију о Дејановој висини.In [21]:

tabela1.loc["Dejan", "Visina"]Out[21]:

163Ево како можемо да добијемо информацију о маси и висини неколико деце:In [22]:

abela1.loc["Dejan":"Zoran", "Masa":"Visina"]Out[22]:

Masa Visina

Ime

Dejan 56 163

Đorđe 45 159

Page 9: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Masa Visina

Ime

Elena 49 161

Žaklina 52 164

Zoran 57 167

7.3. Рачун по врстама и колонама табелеКренимо од једног примера. У ћелији испод дате су оцене неких ученика из информатике, енглеског, математике, физике, хемије и ликовног:In [23]:

razred = [["Ana", 5, 3, 5, 2, 4, 5], ["Bojan", 5, 5, 5, 5, 5, 5], ["Vlada", 4, 5, 3, 4, 5, 4], ["Gordana", 5, 5, 5, 5, 5, 5], ["Dejan", 3, 4, 2, 3, 3, 4], ["Đorđe", 4, 5, 3, 4, 5, 4], ["Elena", 3, 3, 3, 4, 2, 3], ["Žaklina", 5, 5, 4, 5, 4, 5], ["Zoran", 4, 5, 4, 4, 3, 5], ["Ivana", 2, 2, 2, 2, 2, 5], ["Jasna", 3, 4, 5, 4, 5, 5]]Сада ћемо од ових података направити табелу чије колоне ће се звати "Ime", "Informatika", "Engleski", "Matematika", "Fizika", "Hemija", "Likovno" и која ће бити индексирана по колони "Ime":In [24]:

ocene = pd.DataFrame(razred)ocene.columns=["Ime", "Informatika", "Engleski", "Matematika", "Fizika", "Hemija", "Likovno"]ocene1 = ocene.set_index("Ime")ocene1

Page 10: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Out[24]:

Informatika Engleski Matematika Fizika Hemija Likovno

Ime

Ana 5 3 5 2 4 5

Bojan 5 5 5 5 5 5

Vlada 4 5 3 4 5 4

Gordana

5 5 5 5 5 5

Dejan 3 4 2 3 3 4

Đorđe 4 5 3 4 5 4

Elena 3 3 3 4 2 3

Žaklina 5 5 4 5 4 5

Zoran 4 5 4 4 3 5

Ivana 2 2 2 2 2 5

Jasna 3 4 5 4 5 5

Ако желимо да израчунамо просек по предметима, треба на сваку колону ове табеле да применимо функцију mean. Листа са именима свих колона табеле ocene1 се добија као ocene1.columns, па сада само треба да прођемо кроз ову листу и за сваку колону да израчунамо просек:In [14]:

for predmet in ocene1.columns: print(predmet, "->", round(ocene1[predmet].mean(), 2))Informatika -> 3.91Engleski -> 4.18

Page 11: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Matematika -> 3.73Fizika -> 3.82Hemija -> 3.91Likovno -> 4.55Да бисмо израчунали просечне оцене сваког ученика функцију mean ћемо применити на врсте табеле које добијамо позивом функције loc. Погледајмо, прво, како то можемо да урадимо за једног ученика:In [15]:

print("Đorđe ima sledeće ocene:")print(ocene1.loc["Đorđe"])print("Prosek njegovih ocena je:", round(ocene1.loc["Đorđe"].mean(), 2))Đorđe ima sledeće ocene:Informatika 4Engleski 5Matematika 3Fizika 4Hemija 5Likovno 4Name: Đorđe, dtype: int64Prosek njegovih ocena je: 4.17Списак свих ученика се налази у индексној колони, па просеке по свим ученицима можемо да израчунамо овако:In [16]:

for ucenik in ocene1.index: print(ucenik, "->", round(ocene1.loc[ucenik].mean(), 2))Ana -> 4.0Bojan -> 5.0Vlada -> 4.17Gordana -> 5.0Dejan -> 3.17Đorđe -> 4.17Elena -> 3.0Žaklina -> 4.67Zoran -> 4.17Ivana -> 2.5Jasna -> 4.33

7.4. Транспоновање табелеЗамена врста и колона табеле се зове транспоновање. Приликом транспоновања имена колона полазне табеле постају индекси нове табеле, док индексна колона полазне табеле одређује имена колона нове табеле:

Page 12: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Транспоновање се често користи када табела има мало веома дугачких редова, па је у неким ситуацијама лакше посматрати транспоновану табелу која онда има пуно релативно кратких редова. Функције head и tail нам тада омогућују да се брзо упознамо са почетком и крајем табеле и да стекнемо неку интуицију о томе како табела изгледа.

Важно је рећи и то да се са табелама може радити и без транспоновања, јер све што можемо да урадимо на колонама табеле можемо да урадимо и на врстама. И поред тога, транспоновање се често користи јер је библиотека pandas оптимизована за рад по колонама табеле.

Табела се транспонује тако што се на њу примени функција Т која као резултат враћа нову, транспоновану табелу.

Ево примера са оценама:In [17]:

ocene1Out[17]:

Informatika Engleski Matematika Fizika Hemija Likovno

Ime

Ana 5 3 5 2 4 5

Bojan 5 5 5 5 5 5

Vlada 4 5 3 4 5 4

Gordana

5 5 5 5 5 5

Dejan 3 4 2 3 3 4

Đorđe 4 5 3 4 5 4

Elena 3 3 3 4 2 3

Žaklina 5 5 4 5 4 5

Zoran 4 5 4 4 3 5

Page 13: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Informatika Engleski Matematika Fizika Hemija Likovno

Ime

Ivana 2 2 2 2 2 5

Jasna 3 4 5 4 5 5

Транспоновану табелу добијамо овако:In [18]:

ocene2 = ocene1.TIn [19]:

ocene2Out[19]:

Ime Ana Bojan Vlada GordanaDeja

nĐorđe Elena Žaklina

Zoran

Ivana Jasna

Informatika 5 5 4 5 3 4 3 5 4 2 3

Engleski 3 5 5 5 4 5 3 5 5 2 4

Matematika 5 5 3 5 2 3 3 4 4 2 5

Fizika 2 5 4 5 3 4 4 5 4 2 4

Hemija 4 5 5 5 3 5 2 4 3 2 5

Likovno 5 5 4 5 4 4 3 5 5 5 5

Хајде још да се уверимо да су врсте и колоне замениле места и у пољима index и columns. У полазној табели је:In [20]:

ocene1.indexOut[20]:

Index(['Ana', 'Bojan', 'Vlada', 'Gordana', 'Dejan', 'Đorđe', 'Elena', 'Žaklina', 'Zoran', 'Ivana', 'Jasna'], dtype='object', name='Ime')

Page 14: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [21]:

ocene1.columnsOut[21]:

Index(['Informatika', 'Engleski', 'Matematika', 'Fizika', 'Hemija', 'Likovno'], dtype='object')А у транспонованој табели је:In [22]:

ocene2.indexOut[22]:

Index(['Informatika', 'Engleski', 'Matematika', 'Fizika', 'Hemija', 'Likovno'], dtype='object')In [23]:

ocene2.columnsOut[23]:

Index(['Ana', 'Bojan', 'Vlada', 'Gordana', 'Dejan', 'Đorđe', 'Elena', 'Žaklina', 'Zoran', 'Ivana', 'Jasna'], dtype='object', name='Ime')Како смо раније већ видели, просек оцена по предметима добијамо лако:In [24]:

for predmet in ocene1.columns: print(predmet, "->", round(ocene1[predmet].mean(), 2))Informatika -> 3.91Engleski -> 4.18Matematika -> 3.73Fizika -> 3.82Hemija -> 3.91Likovno -> 4.55Да бисмо добили просек оцена по ученицима, можемо да приступимо врстама табеле користећи функцију loc како смо то већ видели, али можемо и да употребимо транспоновану табелу (рачунање просека по колонама, јер су колоне транспоноване табеле заправо врсте полазне табеле):In [25]:

for ucenik in ocene2.columns: print(ucenik, "->", round(ocene2[ucenik].mean(), 2))Ana -> 4.0Bojan -> 5.0Vlada -> 4.17Gordana -> 5.0

Page 15: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Dejan -> 3.17Đorđe -> 4.17Elena -> 3.0Žaklina -> 4.67Zoran -> 4.17Ivana -> 2.5Jasna -> 4.33

7.5. ЗадациЗадатке реши у Џупитеру.Задатак 1. Пажљиво погледај овај Пајтон програм па одговори на питања која следе:In [28]:

import pandas as pdpodaci = [["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]]tabela = pd.DataFrame(podaci)tabela.columns=["Ime", "Pol", "Starost", "Masa", "Visina"]tabela1=tabela.set_index("Ime")tabela

Out[28]:

Ime Pol StarostMas

aVisina

0 Ana ž 13 46 160

1 Bojan m 14 52 165

2 Vlada m 13 47 157

3 Gordana ž 15 54 165

Page 16: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Ime Pol StarostMas

aVisina

4 Dejan m 15 56 163

5 Đorđe m 13 45 159

6 Elena ž 14 49 161

7 Žaklina ž 15 52 164

8 Zoran m 15 57 167

9 Ivana ž 13 45 158

10 Jasna ž 14 51 162

In [29]:

tabela1Out[29]:

Pol

StarostMas

aVisina

Ime

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

Page 17: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Pol

StarostMas

aVisina

Ime

Elena ž 14 49 161

Žaklina ž 15 52 164

Zoran m 15 57 167

Ivana ž 13 45 158

Jasna ž 14 51 162

In [30]:

temp_anomalije = pd.read_csv("podaci/TemperaturneAnomalije.csv", header=None)temp_anomalije1 = temp_anomalije.Ttemp_anomalije1.columns = ["Година", "Аномалија"]temp_anomalije1

Out[30]:

Година Аномалија

0 1977.0 0.22

1 1978.0 0.14

2 1979.0 0.15

3 1980.0 0.30

4 1981.0 0.37

Page 18: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Година Аномалија

5 1982.0 0.15

6 1983.0 0.40

7 1984.0 0.23

8 1985.0 0.14

9 1986.0 0.28

10

1987.0 0.34

11

1988.0 0.45

12

1989.0 0.28

13

1990.0 0.48

14

1991.0 0.44

15

1992.0 0.39

16

1993.0 0.37

17

1994.0 0.29

18

1995.0 0.49

Page 19: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Година Аномалија

19

1996.0 0.34

20

1997.0 0.42

21

1998.0 0.70

22

1999.0 0.48

23

2000.0 0.50

24

2001.0 0.53

25

2002.0 0.68

26

2003.0 0.59

27

2004.0 0.61

28

2005.0 0.64

29

2006.0 0.55

30

2007.0 0.71

Page 20: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Година Аномалија

31

2008.0 0.48

32

2009.0 0.59

33

2010.0 0.77

34

2011.0 0.55

35

2012.0 0.56

36

2013.0 0.62

37

2014.0 0.71

38

2015.0 0.85

39

2016.0 1.10

40

2017.0 0.92

1. У чему је разлика између табела tabela и tabela1?2. Шта представља израз tabela1.index?3. Шта је вредност израза tabela1.loc["Ђорђе"]?4. Шта је вредност израза tabela1.loc["Ђорђе", "Висина"]?5. Шта је вредност израза tabela.loc["Ђорђе", "Висина"]?6. Зашто смо на табелу temp_anomalije применили функцију T?7. Колико колона има табела temp_anomalije1?

Page 21: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Задатак 2. Ево трошкова живота једне породице током једне године, по месецима (сви износи су представљени у динарима):

Stavka Jan Feb Mar Apr Maj Jun Jul Avg Sep Okt Nov Dec

Stanarina

8.251 8.436 8.524 8.388 8.241 8.196 8.004 7.996 7.991 8.015 8.353 8.456

Struja 4.321 4.530 4.115 3.990 3.985 3.726 3.351 3.289 3.295 3.485 3.826 3.834

Telefon (fiksni)

1.425 1.538 1.623 1.489 1.521 1.485 1.491 1.399 1.467 1.531 1.410 1.385

Telefon (mobilni)

2.181 2.235 2.073 1.951 1.989 1.945 3.017 2.638 2.171 1.831 1.926 1.833

TV i internet

2.399 2.399 2.399 2.399 2.399 2.399 2.399 2.399 2.399 2.399 2.399 2.399

Prevoz 1.830 1.830 1.830 1.830 1.950 1.950 1.450 1.450 1.950 1.950 2.050 2.050

Hrana23.25

023.78

024.01

924.11

724.38

924.57

124.73

624.95

125.11

125.38

925.53

125.92

3

Ostalo 4.500 3.700 5.100 3.500 2.750 4.250 7.320 8.250 3.270 4.290 3.200 8.390

У ћелији испод су исти подаци представљени листом:In [31]:

troskovi = [ ["Stanarina", 8251, 8436, 8524, 8388, 8241, 8196, 8004, 7996, 7991, 8015, 8353, 8456], ["Struja", 4321, 4530, 4115, 3990, 3985, 3726, 3351, 3289, 3295, 3485, 3826, 3834], ["Telefon (fiksni)", 1425, 1538, 1623, 1489, 1521, 1485, 1491, 1399, 1467, 1531, 1410, 1385],

Page 22: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

["Telefon (mobilni)", 2181, 2235, 2073, 1951, 1989, 1945, 3017, 2638, 2171, 1831, 1926, 1833], ["TV i internet", 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399 ], ["Prevoz", 1830, 1830, 1830, 1830, 1950, 1950, 1450, 1450, 1950, 1950, 2050, 2050], ["Hrana", 23250, 23780, 24019, 24117, 24389, 24571, 24736, 24951, 25111, 25389, 25531, 25923], ["Ostalo", 4500, 3700, 5100, 3500, 2750, 4250, 7320, 8250, 3270, 4290, 3200, 8390]](а) Представи табелу структуром DataFrame. Индексирај табелу.In [32]:

import pandas as pdtabela = pd.DataFrame(troskovi)tabela.columns=["Stavka","Jan","Feb", "Mar", "Apr", "Maj", "Jun","Jul", "Avg","Sep", "Okt", "Nov","Dec"]tabela1=tabela.set_index("Stavka")tabela1Out[32]:

Page 23: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Jan Feb Mar Apr Maj Jun Jul Avg Sep Okt Nov Dec

Stavka

Stanarina 8251 8436 8524 8388 8241 8196 8004 7996 7991 8015 8353 8456

Struja 4321 4530 4115 3990 3985 3726 3351 3289 3295 3485 3826 3834

Telefon (fiksni) 1425 1538 1623 1489 1521 1485 1491 1399 1467 1531 1410 1385

Telefon (mobilni) 2181 2235 2073 1951 1989 1945 3017 2638 2171 1831 1926 1833

TV i internet 2399 2399 2399 2399 2399 2399 2399 2399 2399 2399 2399 2399

Prevoz 1830 1830 1830 1830 1950 1950 1450 1450 1950 1950 2050 2050

Hrana 23250 23780 24019 24117 24389 24571 24736 24951 25111 25389 25531 25923

Ostalo 4500 3700 5100 3500 2750 4250 7320 8250 3270 4290 3200 8390

(б) Израчунај и испиши просечну потрошњу ове породице по ставкама (колико је породица просечно потрошила на станарину, колико на струју, итд).In [33]:

tabela2 = tabela1.Ttabela2Out[33]:

Page 24: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Stavka

Stanarina Struja Telefon (fiksni) Telefon (mobilni)TV i

internetPrevoz Hrana Ostalo

Jan 8251 4321 1425 2181 2399 1830 23250 4500

Feb 8436 4530 1538 2235 2399 1830 23780 3700

Mar 8524 4115 1623 2073 2399 1830 24019 5100

Apr 8388 3990 1489 1951 2399 1830 24117 3500

Maj 8241 3985 1521 1989 2399 1950 24389 2750

Jun 8196 3726 1485 1945 2399 1950 24571 4250

Jul 8004 3351 1491 3017 2399 1450 24736 7320

Avg 7996 3289 1399 2638 2399 1450 24951 8250

Sep 7991 3295 1467 2171 2399 1950 25111 3270

Okt 8015 3485 1531 1831 2399 1950 25389 4290

Nov 8353 3826 1410 1926 2399 2050 25531 3200

Dec 8456 3834 1385 1833 2399 2050 25923 8390

Page 25: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [34]:

print("Prosecna potrosnja porodice po stavkama je:")for mesec in tabela2.columns: print(mesec, "->", round(tabela2[mesec].mean(), 2))Prosecna potrosnja porodice po stavkama je:Stanarina -> 8237.58Struja -> 3812.25Telefon (fiksni) -> 1480.33Telefon (mobilni) -> 2149.17TV i internet -> 2399.0Prevoz -> 1843.33Hrana -> 24647.25Ostalo -> 4876.67

Задатак 3. Ученици осмог разреда једне школе су анкетирани о томе коју врсту филмова најрадије гледају. Подаци анкете су дати у следећој табели (у коју нису унети неважећи и бесмислени одговори):

Žanr 8-1 8-2 8-3 8-4 8-5

Komedija 4 3 5 2 3

Horor 1 0 2 1 6

Naučna fantastika 10 7 9 8 9

Page 26: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Žanr 8-1 8-2 8-3 8-4 8-5

Avanture 4 3 4 2 2

Istorijski 1 0 2 0 0

Romantični 11 10 7 9 8

(а) Формирај одговарајућу табелу позивом функције DataFrame. Индексирај табелу колоном "Žanr".In [35]:

ucenici=[["Komedija",4,3,5,2,3], ["Horor",1,0,2,1,6], ["Naučna fantastika",10,7,9,8,9], ["Avanture",4,3,4,2,2], ["Istorijski",1,0,2,0,0], ["Romantični",11,10,7,9,8] ]import pandas as pdtabela = pd.DataFrame(ucenici)tabela.columns=["Žanr", "8-1", "8-2", "8-3", "8-4","8-5"]tabela1=tabela.set_index("Žanr")tabela1

Page 27: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Out[35]:

8-1 8-2 8-3 8-4 8-5

Žanr

Komedija 4 3 5 2 3

Horor 1 0 2 1 6

Naučna fantastika 10 7 9 8 9

Avanture 4 3 4 2 2

Istorijski 1 0 2 0 0

Romantični 11 10 7 9 8

(б) Израчунај и испиши колико гласова је добио сваки од наведених жанрова.In [36]:

for resi in tabela1.index: print(resi, "->", tabela1.loc[resi].sum())Komedija -> 17Horor -> 10Naučna fantastika -> 43Avanture -> 15Istorijski -> 3Romantični -> 45

Page 28: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

(в) За свако одељење израчунај и испиши колико је било валидних гласова.In [37]:

for resi in tabela1.columns: print(resi, "->", tabela1[resi].sum())8-1 -> 318-2 -> 238-3 -> 298-4 -> 228-5 -> 28(г) Колико је укупно ученика осмих разреда учествовало у анкетирању? (Рачунамо само ученике који су дали валидне одговоре на анкету.)In [38]:

s=0for resi in tabela1.columns: s=s+tabela1[resi].sum()print("Ucestvovalo je na glasanju ", s, "ucenika")Ucestvovalo je na glasanju 133 ucenika

Malo je teži zadatak.................Задатак 4. Нутритивни подаци за неке намирнице су дати у следећој табели:

Namirnica (100g) Energetska vrednost (kcal) Ugljeni hidrati (g) Belančevine (g) Masti (g)

Crni hleb 250 48,2 8,4 1,0

Beli hleb 280 57,5 6,8 0,5

Page 29: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Namirnica (100g) Energetska vrednost (kcal) Ugljeni hidrati (g) Belančevine (g) Masti (g)

Kisela pavlaka (10% m.m.)

127 4,0 3,1 10,5

Margarin 532 4,6 3,2 1,5

Jogurt 48 4,7 4,0 3,3

Mleko (2,8% m.m.) 57 4,7 3,3 2,8

Salama parizer 523 1,0 17,0 47,0

Pršuta 268 0,0 25,5 18,4

Pileća prsa 110 0,0 23,1 1,2

У ћелији испод ови подаци су припремљени у облику индексиране DataFrame структуре (са скраћеним именима):

Page 30: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [39]:

namirnice = pd.DataFrame([ ["Chleb", 250, 48.2, 8.4, 1.0], ["Bhleb", 280, 57.5, 6.8, 0.5], ["Pavlaka", 127, 4.0, 3.1, 10.5], ["Margarin", 532, 4.6, 3.2, 1.5], ["Jogurt", 48, 4.7, 4.0, 3.3], ["Mleko", 57, 4.7, 3.3, 2.8], ["Parizer", 523, 1.0, 17.0, 47.0], ["Pršuta", 268, 0.0, 25.5, 18.4], ["PilPrsa", 110, 0.0, 23.1, 1.2]])namirnice.columns=["Namirnica", "EnergVr", "UH", "Bel", "Masti"]namirnice1 = namirnice.set_index("Namirnica")In [40]:

namirnice1Out[40]:

EnergVr UH Bel Masti

Namirnica

Chleb 250 48.2 8.4 1.0

Bhleb 280 57.5 6.8 0.5

Pavlaka 127 4.0 3.1 10.5

Page 31: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

EnergVr UH Bel Masti

Namirnica

Margarin 532 4.6 3.2 1.5

Jogurt 48 4.7 4.0 3.3

Mleko 57 4.7 3.3 2.8

Parizer 523 1.0 17.0 47.0

Pršuta 268 0.0 25.5 18.4

PilPrsa 110 0.0 23.1 1.2

(а) Милош је за доручак појео два парчета белог хлеба и попио шољу млека. Свако парче хлеба је било намазано павлаком и имало је један шнит пршуте. Колика је енергетска вредност Милошевог доручка (у kcal), ако претпоставимо да једно парче хлеба има 100 г, да је за мазање једног парчета хлеба довољно 10 г премаза, да један шнит пршуте има 20г и да шоља млека има 2 дл (што је приближно 200 г)?In [21]:

bh=namirnice1.loc["Bhleb", "EnergVr"]bh1=2*bhkp=namirnice1.loc["Pavlaka", "EnergVr"]kp1=kp/5pr=namirnice1.loc["Pršuta", "EnergVr"]pr1=2*pr/5ml=namirnice1.loc["Mleko", "EnergVr"]ml1=2*ml

Page 32: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

u=bh1+kp1+pr1+ml1print("Energetska vrednost dorucka je:")print(u)Energetska vrednost dorucka je:806.6

(б) Колико грама масти је било у Милошевом доручку?In [22]:

bhmast=2*namirnice1.loc["Bhleb", "Masti"]kpmasti=namirnice1.loc["Pavlaka", "Masti"]*20/100prmasti=namirnice1.loc["Pršuta", "Masti"]*40/100mlmasti=2*namirnice1.loc["Mleko", "Masti"]Um=bhmast+kpmasti+prmasti+mlmastiprint("U Milosevom dorucku je bilo masti u gramima",Um)U Milosevom dorucku je bilo masti u gramima 16.060000000000002

(в) Прикажи дијаграмом количину угљених хидрата у намирницама наведеним у табели.In [24]:

import matplotlib.pyplot as pltplt.figure(figsize=(10,5))plt.bar(namirnice1.index, namirnice1["UH"])plt.title("Kolicina ugljenih hidrata")plt.show()plt.close()

Page 33: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Задатак 5. У фолдеру podaci се налази датотека TemperaturneAnomalije.csv која садржи податке о томе за колико степени Целзијуса је средња измерена температура на Земљи већа од оптималне у последњих 40 година. Ова табела има два дугачка реда који изгледају овако:

1977,1978,1979,1980,1981,...

0.22,0.14,0.15,0.3,0.37,...

У првом реду се налазе године (1977-2017), а у другом измерена температурна аномалија. Табела нема заглавље.

Page 34: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

(а) Учитај табелу у структуру DataFrame користећи функцију read_csv из библиотеке pandas. (Напомена: када табела нема заглавље у функцији за учитавање треба навести опцију header=None.)In [41]:

import pandas as pdtabela = pd.read_csv("podaci/TemperaturneAnomalije.csv",header=None)tabelaOut[41]:

0 1 2 3 4 5 6 7 8 9...

31 32 33 34 35 36 37 38 39 40

01977

.001978

.001979

.001980.0

1981.00

1982.00

1983.0

1984.00

1985.00

1986.00

...

2008.00

2009.00

2010.00

2011.00

2012.00

2013.00

2014.00

2015.00

2016.0

2017.00

1 0.22 0.14 0.15 0.3 0.37 0.15 0.4 0.23 0.14 0.28...

0.48 0.59 0.77 0.55 0.56 0.62 0.71 0.85 1.1 0.92

2 rows × 41 columns

(б) Транспонуј табелу и колоне транспоноване табеле назови "Godina" i "Anomalija".In [26]:

tabela1=tabela.Ttabela1Out[26]:

0 1

0 1977.0 0.22

Page 35: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

0 1

1 1978.0 0.14

2 1979.0 0.15

3 1980.0 0.30

4 1981.0 0.37

5 1982.0 0.15

6 1983.0 0.40

7 1984.0 0.23

8 1985.0 0.14

9 1986.0 0.28

10

1987.0 0.34

11

1988.0 0.45

1 1989.0 0.28

Page 36: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

0 1

2

13

1990.0 0.48

14

1991.0 0.44

15

1992.0 0.39

16

1993.0 0.37

17

1994.0 0.29

18

1995.0 0.49

19

1996.0 0.34

20

1997.0 0.42

Page 37: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

0 1

21

1998.0 0.70

22

1999.0 0.48

23

2000.0 0.50

24

2001.0 0.53

25

2002.0 0.68

26

2003.0 0.59

27

2004.0 0.61

28

2005.0 0.64

29

2006.0 0.55

Page 38: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

0 1

30

2007.0 0.71

31

2008.0 0.48

32

2009.0 0.59

33

2010.0 0.77

34

2011.0 0.55

35

2012.0 0.56

36

2013.0 0.62

37

2014.0 0.71

38

2015.0 0.85

Page 39: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

0 1

39

2016.0 1.10

40

2017.0 0.92

(в) Индексирај табелу колоном "Godina".In [27]:

tabela1.columns=["Godina","Anomalija"]tabela2=tabela1.set_index("Godina")tabela2Out[27]:

Anomalija

Godina

1977.0 0.22

1978.0 0.14

1979.0 0.15

1980.0 0.30

Page 40: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Anomalija

Godina

1981.0 0.37

1982.0 0.15

1983.0 0.40

1984.0 0.23

1985.0 0.14

1986.0 0.28

1987.0 0.34

1988.0 0.45

1989.0 0.28

1990.0 0.48

1991.0 0.44

Page 41: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Anomalija

Godina

1992.0 0.39

1993.0 0.37

1994.0 0.29

1995.0 0.49

1996.0 0.34

1997.0 0.42

1998.0 0.70

1999.0 0.48

2000.0 0.50

2001.0 0.53

2002.0 0.68

Page 42: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Anomalija

Godina

2003.0 0.59

2004.0 0.61

2005.0 0.64

2006.0 0.55

2007.0 0.71

2008.0 0.48

2009.0 0.59

2010.0 0.77

2011.0 0.55

2012.0 0.56

2013.0 0.62

Page 43: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Anomalija

Godina

2014.0 0.71

2015.0 0.85

2016.0 1.10

2017.0 0.92

(г) Прикажи температурне аномалије дијаграмом.In [28]:

import matplotlib.pyplot as pltplt.figure(figsize=(20,15))plt.bar(tabela2.index, tabela2["Anomalija"])plt.title("Temperaturne anomalije po godinama")plt.show()plt.close()

Page 44: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији
Page 45: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Задатак 6. У фолдеру podaci се налази датотека StanovnistvoSrbije2017.csv (која има заглавље). Табела има три колоне које се зову "Starost", "M" и "Ž".

(а) Учитај датотеку у структуру података DataFrame и индексирај табелу колоном "Starost".In [2]:

import pandas as pdtabela = pd.read_csv("podaci/StanovnistvoSrbije2017.csv")tabelaOut[2]:

Старост Мушко Женско

0 0 33145 31444

1 1 33252 31105

2 2 33807 31475

3 3 34076 31952

4 4 33436 31643

5 5 34278 32505

Page 46: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Старост Мушко Женско

6 6 33773 31523

7 7 33892 32185

8 8 34706 32396

9 9 34519 32177

10 10 34017 32064

11 11 34947 33251

12 12 35771 34158

13 13 36718 34479

14 14 37205 35092

Page 47: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Старост Мушко Женско

15 15 36928 34971

16 16 37211 35226

17 17 34760 33014

18 18 35172 32798

19 19 35898 34081

20 20 37414 35477

21 21 39569 37206

22 22 41823 39179

23 23 41607 39189

Page 48: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Старост Мушко Женско

24 24 42545 40056

25 25 42277 40408

26 26 43847 42091

27 27 43871 41846

28 28 44018 42323

29 29 46965 44442

... ... ... ...

56 56 47561 51416

57 57 48962 52811

Page 49: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Старост Мушко Женско

58 58 47028 50757

59 59 47507 51339

60 60 45927 50836

61 61 49590 55187

62 62 51101 56620

63 63 53717 60198

64 64 51551 58249

65 65 52837 60492

66 66 43915 51215

Page 50: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Старост Мушко Женско

67 67 47721 56928

68 68 43621 52795

69 69 41198 50780

70 70 37348 46172

71 71 31443 39430

72 72 21704 28611

73 73 23432 31277

74 74 23224 30901

75 75 22638 31237

Page 51: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Старост Мушко Женско

76 76 22769 31768

77 77 23483 32556

78 78 21192 30609

79 79 19496 29305

80 80 18452 27993

81 81 16552 25345

82 82 15025 23036

83 83 13522 21435

84 84 11450 18529

Page 52: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Старост Мушко Женско

8585 и

више44817 78323

86 rows × 3 columns

(б) Прикажи процењени број мушкараца и жена по старости линијским дијаграмом.In [3]:

tabela1=tabela.set_index("Старост")tabela1

Out[3]:

Мушко Женско

Старост

0 33145 31444

Page 53: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

1 33252 31105

2 33807 31475

3 34076 31952

4 33436 31643

5 34278 32505

6 33773 31523

7 33892 32185

8 34706 32396

Page 54: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

9 34519 32177

10 34017 32064

11 34947 33251

12 35771 34158

13 36718 34479

14 37205 35092

15 36928 34971

16 37211 35226

Page 55: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

17 34760 33014

18 35172 32798

19 35898 34081

20 37414 35477

21 39569 37206

22 41823 39179

23 41607 39189

24 42545 40056

Page 56: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

25 42277 40408

26 43847 42091

27 43871 41846

28 44018 42323

29 46965 44442

... ... ...

56 47561 51416

57 48962 52811

Page 57: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

58 47028 50757

59 47507 51339

60 45927 50836

61 49590 55187

62 51101 56620

63 53717 60198

64 51551 58249

65 52837 60492

Page 58: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

66 43915 51215

67 47721 56928

68 43621 52795

69 41198 50780

70 37348 46172

71 31443 39430

72 21704 28611

73 23432 31277

Page 59: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

74 23224 30901

75 22638 31237

76 22769 31768

77 23483 32556

78 21192 30609

79 19496 29305

80 18452 27993

81 16552 25345

Page 60: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

82 15025 23036

83 13522 21435

84 11450 18529

85 и више 44817 78323

86 rows × 2 columnsIn [9]:

import matplotlib.pyplot as pltplt.figure(figsize=(25,15))plt.plot(tabela1.index, tabela1["Мушко"])plt.title("Проценјени број година мушкараца")plt.show()plt.close()

Page 61: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији
Page 62: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [10]:

plt.figure(figsize=(25,15))plt.plot(tabela1.index, tabela1["Женско"])plt.title("Проценјени број година жена")plt.show()plt.close()

Page 63: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

(в) На основу података из табеле израчунај колики је процењени број становника у следећим старосним групама:

0--17 година, 18--65 година, и 66 и више година,

и представи ова три податка секторским дијаграмом. (Упутство: следећи израз може бити од помоћи: tabela.loc["0":"17", "M":"Ž"])In [11]:

tabela2=tabela1.loc["0":"17", "Мушко":"Женско"]tabela2

Out[11]:

Мушко Женско

Старост

0 33145 31444

1 33252 31105

2 33807 31475

3 34076 31952

Page 64: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

4 33436 31643

5 34278 32505

6 33773 31523

7 33892 32185

8 34706 32396

9 34519 32177

10 34017 32064

11 34947 33251

Page 65: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

12 35771 34158

13 36718 34479

14 37205 35092

15 36928 34971

16 37211 35226

17 34760 33014

In [12]:

Page 66: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

for i in tabela2.columns: print(i, "->", tabela2[i].sum())Мушко -> 626441Женско -> 590660In [13]:

tabela3=tabela1.loc["18":"65", "Мушко":"Женско"]tabela3Out[13]:

Мушко Женско

Старост

18 35172 32798

19 35898 34081

20 37414 35477

21 39569 37206

22 41823 39179

Page 67: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

23 41607 39189

24 42545 40056

25 42277 40408

26 43847 42091

27 43871 41846

28 44018 42323

29 46965 44442

30 47359 45131

Page 68: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

31 46889 45215

32 48104 46198

33 50124 48440

34 50384 48433

35 49564 47864

36 49057 47898

37 50216 48587

38 50100 48478

Page 69: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

39 50779 49055

40 50913 49514

41 51003 50298

42 50905 50175

43 49349 48640

44 49051 48790

45 47160 47764

46 47439 47335

Page 70: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

47 46183 46287

48 46337 46881

49 45283 46946

50 45672 47087

51 45303 47108

52 46323 48247

53 44571 46638

54 46090 48619

Page 71: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

55 46204 49318

56 47561 51416

57 48962 52811

58 47028 50757

59 47507 51339

60 45927 50836

61 49590 55187

62 51101 56620

Page 72: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

63 53717 60198

64 51551 58249

65 52837 60492

In [14]:

for i in tabela3.columns: print(i, "->", tabela3[i].sum())Мушко -> 2241149Женско -> 2261947In [15]:

tabela4=tabela1.loc["66":"85 и више", "Мушко":"Женско"]tabela4

Page 73: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Out[15]:

Мушко Женско

Старост

66 43915 51215

67 47721 56928

68 43621 52795

69 41198 50780

70 37348 46172

71 31443 39430

72 21704 28611

Page 74: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

73 23432 31277

74 23224 30901

75 22638 31237

76 22769 31768

77 23483 32556

78 21192 30609

79 19496 29305

80 18452 27993

Page 75: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Мушко Женско

Старост

81 16552 25345

82 15025 23036

83 13522 21435

84 11450 18529

85 и више 44817 78323

In [16]:

for i in tabela4.columns: print(i, "->", tabela4[i].sum())Мушко -> 543002Женско -> 738245

Page 76: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [17]:

print("ukupan broj")for i in tabela1.columns: print(i, "->", tabela1[i].sum())ukupan brojМушко -> 3410592Женско -> 3590852

Задатак 7. У табели испод су дати подаци о продаји неких производа у пет пословних јединица једне компаније (бројеви представљају број продатих комада у једном месецу):

Proizvod PJ1 PJ2PJ3

PJ4 PJ5

Cipele 5 17 3 11 9

Košulja 8 6 7 4 0

Kaiš 4 1 3 5 1

Pantalone 4 2 6 4 5

Čarape (par) 8 9 7 4 9

Page 77: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Proizvod PJ1 PJ2PJ3

PJ4 PJ5

Kravata 1 0 3 2 4

Следећа табела садржи цене ових производа у динарима:

Proizvod Cena (din)

Cipele 11.250

Košulja 6.500

Kaiš 4.750

Pantalone 2.500

Čarape (par) 750

Kravata 3.500

Page 78: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Ћелија испод садржи податке из ове две табеле представљене у облику листе:In [24]:

proizvodi = [ ["Cipele", 5, 17, 3, 11, 9], ["Košulja", 8, 6, 7, 4, 0], ["Kaiš", 4, 1, 3, 5, 1], ["Pantalone", 4, 2, 6, 4, 5], ["Čarape (par)", 8, 9, 7, 4, 9], ["Kravata", 1, 0, 3, 2, 4]]cene = [ ["Cipele", 11250], ["Košulja", 6500], ["Kaiš", 4750], ["Pantalone", 2500], ["Čarape (par)", 750], ["Kravata", 3500]]

(а) Представи обе табеле структуром DataFrame. Индексирај обе табеле.In [25]:

import pandas as pdtabela = pd.DataFrame(proizvodi)tabela.columns=["Proizvod", "PJ1", "PJ2", "PJ3", "PJ4","PJ5"]tabela1=tabela.set_index("Proizvod")tabela2 = pd.DataFrame(cene)tabela2.columns=["Proizvod", "Cena u din"] tabela3=tabela2.set_index("Proizvod")tabela1

Page 79: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Out[25]:

PJ1 PJ2 PJ3 PJ4 PJ5

Proizvod

Cipele 5 17 3 11 9

Košulja 8 6 7 4 0

Kaiš 4 1 3 5 1

Pantalone 4 2 6 4 5

Čarape (par) 8 9 7 4 9

Kravata 1 0 3 2 4

Page 80: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [26]:

tabela3Out[26]:

Cena u din

Proizvod

Cipele 11250

Košulja 6500

Kaiš 4750

Pantalone 2500

Čarape (par)

750

Kravata 3500

Page 81: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

(б) Израчунај колико је укупно у том месецу продато ципела, кошуља, каишева, панталона, чарапа и кравата.In [27]:

tabela4=tabela1.Ttabela4Out[27]:

Proizvod Cipele Košulja KaišPantalon

eČarape (par) Kravata

PJ1 5 8 4 4 8 1

PJ2 17 6 1 2 9 0

PJ3 3 7 3 6 7 3

PJ4 11 4 5 4 4 2

PJ5 9 0 1 5 9 4

In [22]:

print("Broj prodatih proizvoda u toku meseca:")for i in tabela4.columns: print(i, "->", tabela4[i].sum())

Page 82: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Broj prodatih proizvoda u toku meseca:Cipele -> 45Košulja -> 25Kaiš -> 14Pantalone -> 21Čarape (par) -> 37Kravata -> 10

(в) Израчунај колико је у том месецу компанија зарадила на продаји ципела, колико на продаји кошуља, колико на продаји каишева, итд.Најпре ћемо формирати низ са именом broj_prodatih_proizvoda у коме ћемо сместити прој продатих производа по категоријама, ципела, кошуља...

In [23]:

broj_prodatih_proizvoda=[0, 0, 0, 0, 0, 0]i=0for ј in tabela4.columns: s=tabela4[ј].sum() broj_prodatih_proizvoda[i]=s i=i+1print("Niz sa brojem prodatih proizvoda po kategorijama je",broj_prodatih_proizvoda)

Niz sa brojem prodatih proizvoda po kategorijama je [45, 25, 14, 21, 37, 10]

Формираћемо још један низ cene_proizvoda_po_kategorijama у коме ћемо сместити цене производа по категоријамаIn [38]:

cene_proizvoda_po_kategorijama=[0, 0, 0, 0, 0, 0]cip=tabela3.loc["Cipele","Cena u din"]cene_proizvoda_po_kategorijama[0]=cipkos=tabela3.loc["Košulja","Cena u din"]cene_proizvoda_po_kategorijama[1]=kos

Page 83: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

kais=tabela3.loc["Kaiš","Cena u din"]cene_proizvoda_po_kategorijama[2]=kaispan=tabela3.loc["Pantalone","Cena u din"]cene_proizvoda_po_kategorijama[3]=pancar=tabela3.loc["Čarape (par)","Cena u din"]cene_proizvoda_po_kategorijama[4]=carkrav=tabela3.loc["Kravata","Cena u din"]cene_proizvoda_po_kategorijama[5]=kravprint("Niz sa cenama proizvoda po kategorijama je:", cene_proizvoda_po_kategorijama) Niz sa cenama proizvoda po kategorijama je: [11250, 6500, 4750, 2500, 750, 3500]

Зараду компаније на сваком од производа добијамо као производ чланова ова два низа

In [25]:

print("Zarada kompanije na svakom o proizvoda je")for i in range(6): print(cene_proizvoda_po_kategorijama[i]*broj_prodatih_proizvoda[i])Zarada kompanije na svakom o proizvoda je50625016250066500525002775035000

Компиковано????. Може много лакше. Сумирејмо све производе по категоријама и помножимо их ца ценама сваке од категорија. То ћемо решити преко колона. За то су нам потребне следеће табеле:In [26]:

tabela4

Page 84: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Out[26]:

Proizvod Cipele Košulja KaišPantalon

eČarape (par) Kravata

PJ1 5 8 4 4 8 1

PJ2 17 6 1 2 9 0

PJ3 3 7 3 6 7 3

PJ4 11 4 5 4 4 2

PJ5 9 0 1 5 9 4

In [27]:

tabela5=tabela3.Ttabela5

Page 85: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Out[27]:

Proizvod Cipele Košulja Kaiš PantaloneČarape

(par)Kravata

Cena u din

11250 6500475

02500 750 3500

In [28]:

for i in tabela4.columns: print("Zarada kompanije na:",i,"je",tabela4[i].sum()*tabela5[i])Zarada kompanije na: Cipele je Cena u din 506250Name: Cipele, dtype: int64Zarada kompanije na: Košulja je Cena u din 162500Name: Košulja, dtype: int64Zarada kompanije na: Kaiš je Cena u din 66500Name: Kaiš, dtype: int64Zarada kompanije na: Pantalone je Cena u din 52500Name: Pantalone, dtype: int64Zarada kompanije na: Čarape (par) je Cena u din 27750Name: Čarape (par), dtype: int64Zarada kompanije na: Kravata je Cena u din 35000Name: Kravata, dtype: int64Исто то можемо добити и преко редова. За то су нам потрбне следеће табеле:In [29]:

tabela1

Page 86: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Out[29]:

PJ1 PJ2 PJ3 PJ4 PJ5

Proizvod

Cipele 5 17 3 11 9

Košulja 8 6 7 4 0

Kaiš 4 1 3 5 1

Pantalone 4 2 6 4 5

Čarape (par) 8 9 7 4 9

Kravata 1 0 3 2 4

In [30]:

Page 87: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

tabela3

Out[30]:

Cena u din

Proizvod

Cipele 11250

Košulja 6500

Kaiš 4750

Pantalone 2500

Čarape (par)

750

Kravata 3500

Page 88: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [31]:

for i in tabela1.index: print("Zarada kompanije na:",i,"je",tabela1.loc[i].sum()*tabela3.loc[i])Zarada kompanije na: Cipele je Cena u din 506250Name: Cipele, dtype: int64Zarada kompanije na: Košulja je Cena u din 162500Name: Košulja, dtype: int64Zarada kompanije na: Kaiš je Cena u din 66500Name: Kaiš, dtype: int64Zarada kompanije na: Pantalone je Cena u din 52500Name: Pantalone, dtype: int64Zarada kompanije na: Čarape (par) je Cena u din 27750Name: Čarape (par), dtype: int64Zarada kompanije na: Kravata je Cena u din 35000Name: Kravata, dtype: int64

(г)Израчунај и испиши зараду сваке пословне јединице у том месецу.Формирајмо низ проодаје пословне јединице PJ1In [51]:

pj1=[0]*6pj1[0]=tabela1.loc["Cipele","PJ1"]pj1[1]=tabela1.loc["Košulja","PJ1"]pj1[2]=tabela1.loc["Kaiš","PJ1"]pj1[3]=tabela1.loc["Pantalone","PJ1"]pj1[4]=tabela1.loc["Čarape (par)","PJ1"]pj1[5]=tabela1.loc["Kravata","PJ1"]pj1

Page 89: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Out[51]:

[5, 8, 4, 4, 8, 1]

In [52]:

cene_proizvoda_po_kategorijamaOut[52]:

[11250, 6500, 4750, 2500, 750, 3500]In [54]:

s=0for i in range(6): s=s+pj1[i]*cene_proizvoda_po_kategorijama[i]print("Poslovna jedinica PJ1 je zaradila:",s)Poslovna jedinica PJ1 je zaradila: 146750Формирајмо низ проодаје пословне јединице PJ2In [55]:

pj2=[0]*6pj2[0]=tabela1.loc["Cipele","PJ2"]pj2[1]=tabela1.loc["Košulja","PJ2"]pj2[2]=tabela1.loc["Kaiš","PJ2"]pj2[3]=tabela1.loc["Pantalone","PJ2"]pj2[4]=tabela1.loc["Čarape (par)","PJ2"]pj2[5]=tabela1.loc["Kravata","PJ2"]pj2Out[55]:

[17, 6, 1, 2, 9, 0]

Page 90: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [44]:

cene_proizvoda_po_kategorijamaOut[44]:

[11250, 6500, 4750, 2500, 750, 3500]In [56]:

s=0for i in range(6): s=s+pj2[i]*cene_proizvoda_po_kategorijama[i]print("Poslovna jedinica PJ2 je zaradila:",s)Poslovna jedinica PJ2 je zaradila: 246750Формирајмо низ проодаје пословне јединице PJ3In [57]:

pj3=[0]*6pj3[0]=tabela1.loc["Cipele","PJ3"]pj3[1]=tabela1.loc["Košulja","PJ3"]pj3[2]=tabela1.loc["Kaiš","PJ3"]pj3[3]=tabela1.loc["Pantalone","PJ3"]pj3[4]=tabela1.loc["Čarape (par)","PJ3"]pj3[5]=tabela1.loc["Kravata","PJ3"]pj3Out[57]:

[3, 7, 3, 6, 7, 3]In [58]:

Page 91: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

s=0for i in range(6): s=s+pj3[i]*cene_proizvoda_po_kategorijama[i]print("Poslovna jedinica PJ3 je zaradila:",s)Poslovna jedinica PJ3 je zaradila: 124250Формирајмо низ проодаје пословне јединице PJ4In [62]:

pj4=[0]*6pj4[0]=tabela1.loc["Cipele","PJ4"]pj4[1]=tabela1.loc["Košulja","PJ4"]pj4[2]=tabela1.loc["Kaiš","PJ4"]pj4[3]=tabela1.loc["Pantalone","PJ4"]pj4[4]=tabela1.loc["Čarape (par)","PJ4"]pj4[5]=tabela1.loc["Kravata","PJ4"]pj4Out[62]:

[11, 4, 5, 4, 4, 2]In [63]:

s=0for i in range(6): s=s+pj4[i]*cene_proizvoda_po_kategorijama[i]print("Poslovna jedinica PJ4 je zaradila:",s)Poslovna jedinica PJ4 je zaradila: 193500Формирајмо низ проодаје пословне јединице PJ5In [64]:

pj5=[0]*6pj5[0]=tabela1.loc["Cipele","PJ5"]pj5[1]=tabela1.loc["Košulja","PJ5"]pj5[2]=tabela1.loc["Kaiš","PJ5"]

Page 92: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

pj5[3]=tabela1.loc["Pantalone","PJ5"]pj5[4]=tabela1.loc["Čarape (par)","PJ5"]pj5[5]=tabela1.loc["Kravata","PJ4"]pj5

Out[64]:

[9, 0, 1, 5, 9, 2]In [65]:

s=0for i in range(6): s=s+pj5[i]*cene_proizvoda_po_kategorijama[i]print("Poslovna jedinica PJ5 je zaradila:",s)Poslovna jedinica PJ5 je zaradila: 132250

Ево лакшег начина, da bi se ovo razumelo poretbo je pogledati lekciju Sj08In [28]:

tabela3["PJ1"]=0tabela3["PJ2"]=0tabela3["PJ3"]=0tabela3["PJ4"]=0tabela3["PJ5"]=0tabela3

Out[28]:

Page 93: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Cena u din PJ1 PJ2 PJ3 PJ4 PJ5

Proizvod

Cipele 11250 0 0 0 0 0

Košulja 6500 0 0 0 0 0

Kaiš 4750 0 0 0 0 0

Pantalone 2500 0 0 0 0 0

Čarape (par) 750 0 0 0 0 0

Kravata 3500 0 0 0 0 0

In [29]:

for i in tabela3.index: tabela3.loc[i, "PJ1"] =tabela1.loc[i, "PJ1"] tabela3.loc[i, "PJ2"] =tabela1.loc[i, "PJ2"] tabela3.loc[i, "PJ3"] =tabela1.loc[i, "PJ3"]

Page 94: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

tabela3.loc[i, "PJ4"] =tabela1.loc[i, "PJ4"] tabela3.loc[i, "PJ5"] =tabela1.loc[i, "PJ5"]tabela3

Out[29]:

Cena u din PJ1 PJ2 PJ3 PJ4 PJ5

Proizvod

Cipele 11250 5 17 3 11 9

Košulja 6500 8 6 7 4 0

Kaiš 4750 4 1 3 5 1

Pantalone 2500 4 2 6 4 5

Čarape (par) 750 8 9 7 4 9

Kravata 3500 1 0 3 2 4

In [31]:

Page 95: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

tabela3["PJ1 zarada"]=0tabela3["PJ2 zarada"]=0tabela3["PJ3 zarada"]=0tabela3["PJ4 zarada"]=0tabela3["PJ5 zarada"]=0tabela3Out[31]:

Cena u din PJ1 PJ2PJ3

PJ4 PJ5 PJ1 zarada PJ2 zarada PJ3 zarada PJ4 zarada PJ5 zarada

Proizvod

Cipele 11250 5 17 3 11 9 0 0 0 0 0

Košulja 6500 8 6 7 4 0 0 0 0 0 0

Kaiš 4750 4 1 3 5 1 0 0 0 0 0

Pantalone 2500 4 2 6 4 5 0 0 0 0 0

Čarape (par)

750 8 9 7 4 9 0 0 0 0 0

Page 96: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Cena u din PJ1 PJ2PJ3

PJ4 PJ5 PJ1 zarada PJ2 zarada PJ3 zarada PJ4 zarada PJ5 zarada

Proizvod

Kravata 3500 1 0 3 2 4 0 0 0 0 0

In [32]:

for i in tabela3.index: tabela3.loc[i, "PJ1 zarada"] =tabela3.loc[i, "PJ1"]*tabela3.loc[i,"Cena u din"] tabela3.loc[i, "PJ2 zarada"] =tabela3.loc[i, "PJ2"]*tabela3.loc[i,"Cena u din"] tabela3.loc[i, "PJ3 zarada"] =tabela3.loc[i, "PJ3"]*tabela3.loc[i,"Cena u din"] tabela3.loc[i, "PJ4 zarada"] =tabela3.loc[i, "PJ4"]*tabela3.loc[i,"Cena u din"] tabela3.loc[i, "PJ5 zarada"] =tabela3.loc[i, "PJ5"]*tabela3.loc[i,"Cena u din"]tabela3Out[32]:

Page 97: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Cena u din PJ1 PJ2PJ3

PJ4 PJ5 PJ1 zarada PJ2 zarada PJ3 zarada PJ4 zarada PJ5 zarada

Proizvod

Cipele 11250 5 17 3 11 9 56250 191250 33750 123750 101250

Košulja 6500 8 6 7 4 0 52000 39000 45500 26000 0

Kaiš 4750 4 1 3 5 1 19000 4750 14250 23750 4750

Pantalone 2500 4 2 6 4 5 10000 5000 15000 10000 12500

Čarape (par)

750 8 9 7 4 9 6000 6750 5250 3000 6750

Kravata 3500 1 0 3 2 4 3500 0 10500 7000 14000

In [33]:

tabela3.loc["Ukupno"]=0tabela3

Page 98: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Out[33]:

Cena u din PJ1 PJ2PJ3

PJ4 PJ5 PJ1 zarada PJ2 zarada PJ3 zarada PJ4 zarada PJ5 zarada

Proizvod

Cipele 11250 5 17 3 11 9 56250 191250 33750 123750 101250

Košulja 6500 8 6 7 4 0 52000 39000 45500 26000 0

Kaiš 4750 4 1 3 5 1 19000 4750 14250 23750 4750

Pantalone 2500 4 2 6 4 5 10000 5000 15000 10000 12500

Čarape (par)

750 8 9 7 4 9 6000 6750 5250 3000 6750

Kravata 3500 1 0 3 2 4 3500 0 10500 7000 14000

Ukupno 0 0 0 0 0 0 0 0 0 0 0

Page 99: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Cena u din PJ1 PJ2PJ3

PJ4 PJ5 PJ1 zarada PJ2 zarada PJ3 zarada PJ4 zarada PJ5 zarada

Proizvod

In [36]:

for i in tabela3.columns: tabela3.loc["Ukupno", i] = tabela3.loc["Cipele":"Kravata", i].sum()tabela3

Out[36]:

Cena u din PJ1 PJ2PJ3

PJ4 PJ5 PJ1 zarada PJ2 zarada PJ3 zarada PJ4 zarada PJ5 zarada

Proizvod

Cipele 11250 5 17 3 11 9 56250 191250 33750 123750 101250

Page 100: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

Cena u din PJ1 PJ2PJ3

PJ4 PJ5 PJ1 zarada PJ2 zarada PJ3 zarada PJ4 zarada PJ5 zarada

Proizvod

Košulja 6500 8 6 7 4 0 52000 39000 45500 26000 0

Kaiš 4750 4 1 3 5 1 19000 4750 14250 23750 4750

Pantalone 2500 4 2 6 4 5 10000 5000 15000 10000 12500

Čarape (par)

750 8 9 7 4 9 6000 6750 5250 3000 6750

Kravata 3500 1 0 3 2 4 3500 0 10500 7000 14000

Ukupno 29250 30 35 29 30 28 146750 246750 124250 193500 139250

Page 101: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [66]:

tabela3["PJ1 zarada"]Out[66]:

ProizvodCipele 56250Košulja 52000Kaiš 19000Pantalone 10000Čarape (par) 6000Kravata 3500Ukupno 146750Name: PJ1 zarada, dtype: int64In [67]:

tabela3["PJ2 zarada"]Out[67]:

ProizvodCipele 191250Košulja 39000Kaiš 4750Pantalone 5000Čarape (par) 6750Kravata 0Ukupno 246750Name: PJ2 zarada, dtype: int64

Page 102: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [68]:

tabela3["PJ3 zarada"]Out[68]:

ProizvodCipele 33750Košulja 45500Kaiš 14250Pantalone 15000Čarape (par) 5250Kravata 10500Ukupno 124250Name: PJ3 zarada, dtype: int64In [69]:

tabela3["PJ4 zarada"]Out[69]:

ProizvodCipele 123750Košulja 26000Kaiš 23750Pantalone 10000Čarape (par) 3000Kravata 7000Ukupno 193500Name: PJ4 zarada, dtype: int64

Page 103: 7. Индексирање и транспоновање табеле  · Web view7. Индексирање и транспоновање табеле. У овој лекцији

In [70]:

tabela3["PJ5 zarada"]Out[70]:

ProizvodCipele 101250Košulja 0Kaiš 4750Pantalone 12500Čarape (par) 6750Kravata 14000Ukupno 139250Name: PJ5 zarada, dtype: int64