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



7. Индексира?е и транспонова?е табелеУ ово? лекци?и ?емо говорити о:индексира?у табеле ради флексибилни?ег приступа елементима табеле;приступу врстама и по?единачним локаци?ама индексиране табеле;рачуна?у са целим редовима и колонама табеле; итранспонова?у табеле.7.1. Индексира?еВидели смо да ?е рад са колонама табеле веома ?едноставан.Да бисмо могли да радимо са редовима табеле треба прво да на?емо ?едну колону чи?а вредност ?еднозначно одре?у?е цео ред табеле. На пример, у табели са прошлог часаImePolStarostMasaVisinaAna?1346160Bojanm1452165Vladam1347157Gordana?1554165Dejanm1556163?or?em1345159Elena?1449161?aklina?1552164Zoranm1557167Ivana?1345158Jasna?1451162колона "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" и чи?и редови су индексирани бро?евима:In?[14]:tabelaOut[14]:ImePolStarostMasaVisina0Ana?13461601Bojanm14521652Vladam13471573Gordana?15541654Dejanm15561635?or?em13451596Elena?14491617?aklina?15521648Zoranm15571679Ivana?134515810Jasna?1451162А ево и нове табеле у ко?о? су редови индексирани именима деце:In?[15]:tabela1Out[15]:PolStarostMasaVisinaImeAna?1346160Bojanm1452165Vladam1347157Gordana?1554165Dejanm1556163?or?em1345159Elena?1449161?aklina?1552164Zoranm1557167Ivana?1345158Jasna?1451162Колона "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: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) 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")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?можемо да наведемо и распон, и тако ?емо добити одговара?у?и део табеле:In?[20]:tabela1.loc["Dejan":"Zoran"]Out[20]:PolStarostMasaVisinaImeDejanm1556163?or?em1345159Elena?1449161?aklina?1552164Zoranm1557167Ако као други аргумент функци?е?loc?наведемо име колоне, рецимо овако:tabela1.loc["Dejan", "Visina"]доби?емо информаци?у о Де?аново? висини.In?[21]:tabela1.loc["Dejan", "Visina"]Out[21]:163Ево како можемо да доби?емо информаци?у о маси и висини неколико деце:In?[22]:abela1.loc["Dejan":"Zoran", "Masa":"Visina"]Out[22]:MasaVisinaImeDejan56163?or?e45159Elena49161?aklina52164Zoran571677.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")ocene1Out[24]:InformatikaEngleskiMatematikaFizikaHemijaLikovnoImeAna535245Bojan555555Vlada453454Gordana555555Dejan342334?or?e453454Elena333423?aklina554545Zoran454435Ivana222225Jasna345455Ако желимо да израчунамо просек по предметима, треба на сваку колону ове табеле да применимо функци?у?mean. Листа са именима свих колона табеле?ocene1?се доби?а као?ocene1.columns, па сада само треба да про?емо кроз ову листу и за сваку колону да израчунамо просек:In?[14]: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Да бисмо израчунали просечне оцене сваког ученика функци?у?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.337.4. Транспонова?е табелеЗамена врста и колона табеле се зове?транспонова?е. Приликом транспонова?а имена колона полазне табеле поста?у индекси нове табеле, док индексна колона полазне табеле одре?у?е имена колона нове табеле:Транспонова?е се често користи када табела има мало веома дугачких редова, па ?е у неким ситуаци?ама лакше посматрати транспоновану табелу ко?а онда има пуно релативно кратких редова. Функци?е?head?и?tail?нам тада омогу?у?у да се брзо упознамо са почетком и кра?ем табеле и да стекнемо неку интуици?у о томе како табела изгледа.Важно ?е ре?и и то да се са табелама може радити и без транспонова?а, ?ер све што можемо да урадимо на колонама табеле можемо да урадимо и на врстама. И поред тога, транспонова?е се често користи ?ер ?е библиотека?pandas?оптимизована за рад по колонама табеле.Табела се транспону?е тако што се на ?у примени функци?а?Т?ко?а као резултат вра?а нову, транспоновану табелу.Ево примера са оценама:In?[17]:ocene1Out[17]:InformatikaEngleskiMatematikaFizikaHemijaLikovnoImeAna535245Bojan555555Vlada453454Gordana555555Dejan342334?or?e453454Elena333423?aklina554545Zoran454435Ivana222225Jasna345455Транспоновану табелу доби?амо овако:In?[18]:ocene2 = ocene1.TIn?[19]:ocene2Out[19]:ImeAnaBojanVladaGordanaDejan?or?eElena?aklinaZoranIvanaJasnaInformatika55453435423Engleski35554535524Matematika55352334425Fizika25453445424Hemija45553524325Likovno55454435555Ха?де ?ош да се уверимо да су врсте и колоне замениле места и у по?има?index?и?columns. У полазно? табели ?е:In?[20]:ocene1.indexOut[20]:Index(['Ana', 'Bojan', 'Vlada', 'Gordana', 'Dejan', '?or?e', 'Elena', '?aklina', 'Zoran', 'Ivana', 'Jasna'], dtype='object', name='Ime')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.0Dejan -> 3.17?or?e -> 4.17Elena -> 3.0?aklina -> 4.67Zoran -> 4.17Ivana -> 2.5Jasna -> 4.337.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]:ImePolStarostMasaVisina0Ana?13461601Bojanm14521652Vladam13471573Gordana?15541654Dejanm15561635?or?em13451596Elena?14491617?aklina?15521648Zoranm15571679Ivana?134515810Jasna?1451162In?[29]:tabela1Out[29]:PolStarostMasaVisinaImeAna?1346160Bojanm1452165Vladam1347157Gordana?1554165Dejanm1556163?or?em1345159Elena?1449161?aklina?1552164Zoranm1557167Ivana?1345158Jasna?1451162In?[30]:temp_anomalije = pd.read_csv("podaci/TemperaturneAnomalije.csv", header=None)temp_anomalije1 = temp_anomalije.Ttemp_anomalije1.columns = ["Година", "Аномали?а"]temp_anomalije1Out[30]:ГодинаАномали?а01977.00.2211978.00.1421979.00.1531980.00.3041981.00.3751982.00.1561983.00.4071984.00.2381985.00.1491986.00.28101987.00.34111988.00.45121989.00.28131990.00.48141991.00.44151992.00.39161993.00.37171994.00.29181995.00.49191996.00.34201997.00.42211998.00.70221999.00.48232000.00.50242001.00.53252002.00.68262003.00.59272004.00.61282005.00.64292006.00.55302007.00.71312008.00.48322009.00.59332010.00.77342011.00.55352012.00.56362013.00.62372014.00.71382015.00.85392016.01.10402017.00.92У чему ?е разлика изме?у табела?tabela?и?tabela1?Шта представ?а израз?tabela1.index?Шта ?е вредност израза?tabela1.loc["?ор?е"]?Шта ?е вредност израза?tabela1.loc["?ор?е", "Висина"]?Шта ?е вредност израза?tabela.loc["?ор?е", "Висина"]?Зашто смо на табелу?temp_anomalije?применили функци?у?T?Колико колона има табела?temp_anomalije1?Задатак 2.?Ево трошкова живота ?едне породице током ?едне године, по месецима (сви износи су представ?ени у динарима):StavkaJanFebMarAprMajJunJulAvgSepOktNovDecStanarina8.2518.4368.5248.3888.2418.1968.0047.9967.9918.0158.3538.456Struja4.3214.5304.1153.9903.9853.7263.3513.2893.2953.4853.8263.834Telefon (fiksni)1.4251.5381.6231.4891.5211.4851.4911.3991.4671.5311.4101.385Telefon (mobilni)2.1812.2352.0731.9511.9891.9453.0172.6382.1711.8311.9261.833TV i internet2.3992.3992.3992.3992.3992.3992.3992.3992.3992.3992.3992.399Prevoz1.8301.8301.8301.8301.9501.9501.4501.4501.9501.9502.0502.050Hrana23.25023.78024.01924.11724.38924.57124.73624.95125.11125.38925.53125.923Ostalo4.5003.7005.1003.5002.7504.2507.3208.2503.2704.2903.2008.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], ["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]:JanFebMarAprMajJunJulAvgSepOktNovDecStavkaStanarina825184368524838882418196800479967991801583538456Struja432145304115399039853726335132893295348538263834Telefon (fiksni)142515381623148915211485149113991467153114101385Telefon (mobilni)218122352073195119891945301726382171183119261833TV i internet239923992399239923992399239923992399239923992399Prevoz183018301830183019501950145014501950195020502050Hrana232502378024019241172438924571247362495125111253892553125923Ostalo450037005100350027504250732082503270429032008390(б)?Израчуна? и испиши?просечну?потрош?у ове породице по ставкама (колико ?е породица просечно потрошила на станарину, колико на стру?у, итд).In?[33]:tabela2 = tabela1.Ttabela2Out[33]:StavkaStanarinaStrujaTelefon (fiksni)Telefon (mobilni)TV i internetPrevozHranaOstaloJan825143211425218123991830232504500Feb843645301538223523991830237803700Mar852441151623207323991830240195100Apr838839901489195123991830241173500Maj824139851521198923991950243892750Jun819637261485194523991950245714250Jul800433511491301723991450247367320Avg799632891399263823991450249518250Sep799132951467217123991950251113270Okt801534851531183123991950253894290Nov835338261410192623992050255313200Dec845638341385183323992050259238390In?[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.?Ученици осмог разреда ?едне школе су анкетирани о томе ко?у врсту филмова на?ради?е гледа?у. Подаци анкете су дати у следе?о? табели (у ко?у нису унети неваже?и и бесмислени одговори):?anr8-18-28-38-48-5Komedija43523Horor10216Nau?na fantastika107989Avanture43422Istorijski10200Romanti?ni1110798(а)?Формира? одговара?у?у табелу позивом функци?е?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")tabela1Out[35]:8-18-28-38-48-5?anrKomedija43523Horor10216Nau?na fantastika107989Avanture43422Istorijski10200Romanti?ni1110798(б)?Израчуна? и испиши колико гласова ?е добио сваки од наведених жанрова.In?[36]:for resi in tabela1.index: print(resi, "->", tabela1.loc[resi].sum())Komedija -> 17Horor -> 10Nau?na fantastika -> 43Avanture -> 15Istorijski -> 3Romanti?ni -> 45(в)?За свако оде?е?е израчуна? и испиши колико ?е било валидних гласова.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 ucenikaMalo je te?i zadatak.................Задатак 4.?Нутритивни подаци за неке намирнице су дати у следе?о? табели:Namirnica (100g)Energetska vrednost (kcal)Ugljeni hidrati (g)Belan?evine (g)Masti (g)Crni hleb25048,28,41,0Beli hleb28057,56,80,5Kisela pavlaka (10% m.m.)1274,03,110,5Margarin5324,63,21,5Jogurt484,74,03,3Mleko (2,8% m.m.)574,73,32,8Salama parizer5231,017,047,0Pr?uta2680,025,518,4Pile?a prsa1100,023,11,2У ?ели?и испод ови подаци су припрем?ени у облику индексиране?DataFrame?структуре (са скра?еним именима):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]:EnergVrUHBelMastiNamirnicaChleb25048.28.41.0Bhleb28057.56.80.5Pavlaka1274.03.110.5Margarin5324.63.21.5Jogurt484.74.03.3Mleko574.73.32.8Parizer5231.017.047.0Pr?uta2680.025.518.4PilPrsa1100.023.11.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*mlu=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()Задатак 5.?У фолдеру?podaci?се налази датотека?TemperaturneAnomalije.csv?ко?а садржи податке о томе за колико степени Целзи?уса ?е сред?а измерена температура на Зем?и ве?а од оптималне у послед?их 40 година. Ова табела има два дугачка реда ко?и изгледа?у овако:1977,1978,1979,1980,1981,...0.22,0.14,0.15,0.3,0.37,...У првом реду се налазе године (1977-2017), а у другом измерена температурна аномали?а. Табела нема заглав?е.(а)?Учита? табелу у структуру?DataFrame?користе?и функци?у?read_csv?из библиотеке?pandas. (Напомена: када табела нема заглав?е у функци?и за учитава?е треба навести опци?у?header=None.)In?[41]:import pandas as pdtabela = pd.read_csv("podaci/TemperaturneAnomalije.csv",header=None)tabelaOut[41]:0123456789...3132333435363738394001977.001978.001979.001980.01981.001982.001983.01984.001985.001986.00...2008.002009.002010.002011.002012.002013.002014.002015.002016.02017.0010.220.140.150.30.370.150.40.230.140.28...0.480.590.770.550.560.620.710.851.10.922 rows × 41 columns(б)?Транспону? табелу и колоне транспоноване табеле назови "Godina" i "Anomalija".In?[26]:tabela1=tabela.Ttabela1Out[26]:0101977.00.2211978.00.1421979.00.1531980.00.3041981.00.3751982.00.1561983.00.4071984.00.2381985.00.1491986.00.28101987.00.34111988.00.45121989.00.28131990.00.48141991.00.44151992.00.39161993.00.37171994.00.29181995.00.49191996.00.34201997.00.42211998.00.70221999.00.48232000.00.50242001.00.53252002.00.68262003.00.59272004.00.61282005.00.64292006.00.55302007.00.71312008.00.48322009.00.59332010.00.77342011.00.55352012.00.56362013.00.62372014.00.71382015.00.85392016.01.10402017.00.92(в)?Индексира? табелу колоном "Godina".In?[27]:tabela1.columns=["Godina","Anomalija"]tabela2=tabela1.set_index("Godina")tabela2Out[27]:AnomalijaGodina1977.00.221978.00.141979.00.151980.00.301981.00.371982.00.151983.00.401984.00.231985.00.141986.00.281987.00.341988.00.451989.00.281990.00.481991.00.441992.00.391993.00.371994.00.291995.00.491996.00.341997.00.421998.00.701999.00.482000.00.502001.00.532002.00.682003.00.592004.00.612005.00.642006.00.552007.00.712008.00.482009.00.592010.00.772011.00.552012.00.562013.00.622014.00.712015.00.852016.01.102017.00.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()Задатак 6.?У фолдеру?podaci?се налази датотека?StanovnistvoSrbije2017.csv?(ко?а има заглав?е). Табела има три колоне ко?е се зову "Starost", "M" и "?".(а)?Учита? датотеку у структуру података?DataFrame?и индексира? табелу колоном "Starost".In?[2]:import pandas as pdtabela = pd.read_csv("podaci/StanovnistvoSrbije2017.csv")tabelaOut[2]:СтаростМушкоЖенско0033145314441133252311052233807314753334076319524433436316435534278325056633773315237733892321858834706323969934519321771010340173206411113494733251121235771341581313367183447914143720535092151536928349711616372113522617173476033014181835172327981919358983408120203741435477212139569372062222418233917923234160739189242442545400562525422774040826264384742091272743871418462828440184232329294696544442............56564756151416575748962528115858470285075759594750751339606045927508366161495905518762625110156620636353717601986464515515824965655283760492666643915512156767477215692868684362152795696941198507807070373484617271713144339430727221704286117373234323127774742322430901757522638312377676227693176877772348332556787821192306097979194962930580801845227993818116552253458282150252303683831352221435848411450185298585 и више448177832386 rows × 3 columns(б)?Прикажи проце?ени бро? мушкараца и жена по старости лини?ским ди?аграмом.In?[3]:tabela1=tabela.set_index("Старост")tabela1Out[3]:МушкоЖенскоСтарост03314531444133252311052338073147533407631952433436316435342783250563377331523733892321858347063239693451932177103401732064113494733251123577134158133671834479143720535092153692834971163721135226173476033014183517232798193589834081203741435477213956937206224182339179234160739189244254540056254227740408264384742091274387141846284401842323294696544442.........56475615141657489625281158470285075759475075133960459275083661495905518762511015662063537176019864515515824965528376049266439155121567477215692868436215279569411985078070373484617271314433943072217042861173234323127774232243090175226383123776227693176877234833255678211923060979194962930580184522799381165522534582150252303683135222143584114501852985 и више448177832386 rows × 2 columnsIn?[9]:import matplotlib.pyplot as pltplt.figure(figsize=(25,15))plt.plot(tabela1.index, tabela1["Мушко"])plt.title("Процен?ени бро? година мушкараца")plt.show()plt.close()In?[10]:plt.figure(figsize=(25,15))plt.plot(tabela1.index, tabela1["Женско"])plt.title("Процен?ени бро? година жена")plt.show()plt.close()(в)?На основу података из табеле израчуна? колики ?е проце?ени бро? становника у следе?им старосним групама:0--17 година,18--65 година, и66 и више година,и представи ова три податка секторским ди?аграмом. (Упутство: следе?и израз може бити од помо?и:?tabela.loc["0":"17", "M":"?"])In?[11]:tabela2=tabela1.loc["0":"17", "Мушко":"Женско"]tabela2Out[11]:МушкоЖенскоСтарост03314531444133252311052338073147533407631952433436316435342783250563377331523733892321858347063239693451932177103401732064113494733251123577134158133671834479143720535092153692834971163721135226173476033014In?[12]:for i in tabela2.columns: print(i, "->", tabela2[i].sum())Мушко -> 626441Женско -> 590660In?[13]:tabela3=tabela1.loc["18":"65", "Мушко":"Женско"]tabela3Out[13]:МушкоЖенскоСтарост183517232798193589834081203741435477213956937206224182339179234160739189244254540056254227740408264384742091274387141846284401842323294696544442304735945131314688945215324810446198335012448440345038448433354956447864364905747898375021648587385010048478395077949055405091349514415100350298425090550175434934948640444905148790454716047764464743947335474618346287484633746881494528346946504567247087514530347108524632348247534457146638544609048619554620449318564756151416574896252811584702850757594750751339604592750836614959055187625110156620635371760198645155158249655283760492In?[14]:for i in tabela3.columns: print(i, "->", tabela3[i].sum())Мушко -> 2241149Женско -> 2261947In?[15]:tabela4=tabela1.loc["66":"85 и више", "Мушко":"Женско"]tabela4Out[15]:МушкоЖенскоСтарост66439155121567477215692868436215279569411985078070373484617271314433943072217042861173234323127774232243090175226383123776227693176877234833255678211923060979194962930580184522799381165522534582150252303683135222143584114501852985 и више4481778323In?[16]:for i in tabela4.columns: print(i, "->", tabela4[i].sum())Мушко -> 543002Женско -> 738245In?[17]:print("ukupan broj")for i in tabela1.columns: print(i, "->", tabela1[i].sum())ukupan brojМушко -> 3410592Женско -> 3590852Задатак 7.?У табели испод су дати подаци о прода?и неких производа у пет пословних ?единица ?едне компани?е (бро?еви представ?а?у бро? продатих комада у ?едном месецу):ProizvodPJ1PJ2PJ3PJ4PJ5Cipele5173119Ko?ulja86740Kai?41351Pantalone42645?arape (par)89749Kravata10324Следе?а табела садржи цене ових производа у динарима:ProizvodCena (din)Cipele11.250Ko?ulja6.500Kai?4.750Pantalone2.500?arape (par)750Kravata3.500?ели?а испод садржи податке из ове две табеле представ?ене у облику листе: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")tabela1Out[25]:PJ1PJ2PJ3PJ4PJ5ProizvodCipele5173119Ko?ulja86740Kai?41351Pantalone42645?arape (par)89749Kravata10324In?[26]:tabela3Out[26]:Cena u dinProizvodCipele11250Ko?ulja6500Kai?4750Pantalone2500?arape (par)750Kravata3500(б)?Израчуна? колико ?е укупно у том месецу продато ципела, кошу?а, каишева, панталона, чарапа и кравата.In?[27]:tabela4=tabela1.Ttabela4Out[27]:ProizvodCipeleKo?uljaKai?Pantalone?arape (par)KravataPJ1584481PJ21761290PJ3373673PJ41145442PJ5901594In?[22]:print("Broj prodatih proizvoda u toku meseca:")for i in tabela4.columns: print(i, "->", tabela4[i].sum())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]=koskais=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]:tabela4Out[26]:ProizvodCipeleKo?uljaKai?Pantalone?arape (par)KravataPJ1584481PJ21761290PJ3373673PJ41145442PJ5901594In?[27]:tabela5=tabela3.Ttabela5Out[27]:ProizvodCipeleKo?uljaKai?Pantalone?arape (par)KravataCena u din112506500475025007503500In?[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]:tabela1Out[29]:PJ1PJ2PJ3PJ4PJ5ProizvodCipele5173119Ko?ulja86740Kai?41351Pantalone42645?arape (par)89749Kravata10324In?[30]:tabela3Out[30]:Cena u dinProizvodCipele11250Ko?ulja6500Kai?4750Pantalone2500?arape (par)750Kravata3500In?[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"]pj1Out[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]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]: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"]pj5[3]=tabela1.loc["Pantalone","PJ5"]pj5[4]=tabela1.loc["?arape (par)","PJ5"]pj5[5]=tabela1.loc["Kravata","PJ4"]pj5Out[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"]=0tabela3Out[28]:Cena u dinPJ1PJ2PJ3PJ4PJ5ProizvodCipele1125000000Ko?ulja650000000Kai?475000000Pantalone250000000?arape (par)75000000Kravata350000000In?[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"] tabela3.loc[i, "PJ4"] =tabela1.loc[i, "PJ4"] tabela3.loc[i, "PJ5"] =tabela1.loc[i, "PJ5"]tabela3Out[29]:Cena u dinPJ1PJ2PJ3PJ4PJ5ProizvodCipele112505173119Ko?ulja650086740Kai?475041351Pantalone250042645?arape (par)75089749Kravata350010324In?[31]:tabela3["PJ1 zarada"]=0tabela3["PJ2 zarada"]=0tabela3["PJ3 zarada"]=0tabela3["PJ4 zarada"]=0tabela3["PJ5 zarada"]=0tabela3Out[31]:Cena u dinPJ1PJ2PJ3PJ4PJ5PJ1 zaradaPJ2 zaradaPJ3 zaradaPJ4 zaradaPJ5 zaradaProizvodCipele11250517311900000Ko?ulja65008674000000Kai?47504135100000Pantalone25004264500000?arape (par)7508974900000Kravata35001032400000In?[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]:Cena u dinPJ1PJ2PJ3PJ4PJ5PJ1 zaradaPJ2 zaradaPJ3 zaradaPJ4 zaradaPJ5 zaradaProizvodCipele1125051731195625019125033750123750101250Ko?ulja650086740520003900045500260000Kai?47504135119000475014250237504750Pantalone250042645100005000150001000012500?arape (par)7508974960006750525030006750Kravata3500103243500010500700014000In?[33]:tabela3.loc["Ukupno"]=0tabela3?Out[33]:Cena u dinPJ1PJ2PJ3PJ4PJ5PJ1 zaradaPJ2 zaradaPJ3 zaradaPJ4 zaradaPJ5 zaradaProizvodCipele1125051731195625019125033750123750101250Ko?ulja650086740520003900045500260000Kai?47504135119000475014250237504750Pantalone250042645100005000150001000012500?arape (par)7508974960006750525030006750Kravata3500103243500010500700014000Ukupno00000000000In?[36]:for i in tabela3.columns: tabela3.loc["Ukupno", i] = tabela3.loc["Cipele":"Kravata", i].sum()tabela3Out[36]:Cena u dinPJ1PJ2PJ3PJ4PJ5PJ1 zaradaPJ2 zaradaPJ3 zaradaPJ4 zaradaPJ5 zaradaProizvodCipele1125051731195625019125033750123750101250Ko?ulja650086740520003900045500260000Kai?47504135119000475014250237504750Pantalone250042645100005000150001000012500?arape (par)7508974960006750525030006750Kravata3500103243500010500700014000Ukupno292503035293028146750246750124250193500139250In?[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: int64In?[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: int64In?[70]:tabela3["PJ5 zarada"]Out[70]:ProizvodCipele 101250Ko?ulja 0Kai? 4750Pantalone 12500?arape (par) 6750Kravata 14000Ukupno 139250Name: PJ5 zarada, dtype: int64? ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related searches