13. час: Утврђивање градива¶
Сада ћемо мало застати и осврнути се на материјал са последња два часа. Задатке (осим првог) реши у Џупајтеру.
Задатак 1. Погледај пажљиво наредбе у следећој ћелији, па одговори на питања:
import pandas as pd
temp_anomalije = pd.read_csv("podaci/TemperaturneAnomalije.csv", header=None)
temp_anomalije1 = temp_anomalije.T
temp_anomalije1.columns = ["Година", "Аномалија"]
drzave = pd.read_csv("https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv")
US = pd.read_html("https://simple.wikipedia.org/wiki/List_of_U.S._states", header=0)[0]
US.to_csv("podaci/SAD.csv")
- Како бисмо учитали табелу
TemperaturneAnomalije.csv
када би она имала заглавље? - Зашто смо на табелу
temp_anomalije
применили функцијуT
? - Колико колона има табела
temp_anomalije1
? - Да ли је табела
drzave
формирана на основу података који су смештени локално, на твом рачунару? - У ком формату су представљени подаци на основу којих је формирана табела
US
? - Шта би се десило када би у интернет претраживач укуцао
https://simple.wikipedia.org/wiki/List_of_U.S._states
? - У ком формату ће бити записани подаци из табеле "US"?
- Да ли ће подаци бити записани локално, или на неки удаљени ресурс?
Задатак 2. У фолдеру podaci се налази датотека StanovnistvoSrbije2017.csv (која има заглавље). Табела има три колоне које се зову "Старост", "Мушко" и "Женско".
(а) Учитај датотеку у структуру података DataFrame и индексирај табелу колоном "Старост".
(б) На основу података из табеле израчунај колики је процењени број становника у следећим старосним групама:
- 0--17 година,
- 18--65 година, и
- 66 и више година,
и представи ова три податка секторским дијаграмом. (Упутство: следећи израз може бити од помоћи: tabela.loc["0":"17", "Мушко":"Женско"]
)
Задатак 3. У ћелији испод налазе се три низа података: списак имена месеци и потом максималне и минималне температуре по месецима које су забележене у Сјеници у периоду 1981-2010. године.
meseci = ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"]
SjenicaMaxPoMesecima = [ 14.0, 19.4, 21.9, 24.3, 28.8, 31.5, 33.5, 32.8, 29.7, 26.5, 20.2, 18.0]
SjenicaMinPoMesecima = [-35.6, -31.0, -25.0, -8.3, -6.4, -3.7, -0.4, -1.3, -9.3, -10.7, -26.2, -29.6]
(Подаци су преузети са сајта Републичког хидрометеоролошког завода и доступни су на адреси http://www.hidmet.gov.rs/latin/meteorologija/stanica_sr.php?moss_id=13369)
(а) Формирај табелу и представи је структуром DataFrame.
(б) Транспонуј табелу, дај колонама име и индексирај табелу именом месеца.
(в) Додај нову колону овој табели па у њу упиши максимални температурни распон за сваки месец (који се добија када се од највише забележене температуре одузме најнижа забележена температура).
(г) Овако трансформисану табелу упиши у датотеку Sjenica.csv водећи рачуна да у табели има података који су записани ћирилицом.
Задатак 4. Ево трошкова живота једне породице током једне године, по месецима (сви износи су представљени у динарима):
Ставка | Јан | Феб | Мар | Апр | Мај | Јун | Јул | Авг | Сеп | Окт | Нов | Дец |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Станарина | 8.251 | 8.436 | 8.524 | 8.388 | 8.241 | 8.196 | 8.004 | 7.996 | 7.991 | 8.015 | 8.353 | 8.456 |
Струја | 4.321 | 4.530 | 4.115 | 3.990 | 3.985 | 3.726 | 3.351 | 3.289 | 3.295 | 3.485 | 3.826 | 3.834 |
Телефон (фиксни) | 1.425 | 1.538 | 1.623 | 1.489 | 1.521 | 1.485 | 1.491 | 1.399 | 1.467 | 1.531 | 1.410 | 1.385 |
Телефон (мобилни) | 2.181 | 2.235 | 2.073 | 1.951 | 1.989 | 1.945 | 3.017 | 2.638 | 2.171 | 1.831 | 1.926 | 1.833 |
ТВ и интернет | 2.399 | 2.399 | 2.399 | 2.399 | 2.399 | 2.399 | 2.399 | 2.399 | 2.399 | 2.399 | 2.399 | 2.399 |
Превоз | 1.830 | 1.830 | 1.830 | 1.830 | 1.950 | 1.950 | 1.450 | 1.450 | 1.950 | 1.950 | 2.050 | 2.050 |
Храна | 23.250 | 23.780 | 24.019 | 24.117 | 24.389 | 24.571 | 24.736 | 24.951 | 25.111 | 25.389 | 25.531 | 25.923 |
Остало | 4.500 | 3.700 | 5.100 | 3.500 | 2.750 | 4.250 | 7.320 | 8.250 | 3.270 | 4.290 | 3.200 | 8.390 |
У ћелији испод су исти подаци представљени листом:
# изврши ову ћелију
troskovi = [
["Станарина", 8251, 8436, 8524, 8388, 8241, 8196, 8004, 7996, 7991, 8015, 8353, 8456],
["Струја", 4321, 4530, 4115, 3990, 3985, 3726, 3351, 3289, 3295, 3485, 3826, 3834],
["Телефон (фиксни)", 1425, 1538, 1623, 1489, 1521, 1485, 1491, 1399, 1467, 1531, 1410, 1385],
["Телефон (мобилни)", 2181, 2235, 2073, 1951, 1989, 1945, 3017, 2638, 2171, 1831, 1926, 1833],
["ТВ и интернет", 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399 ],
["Превоз", 1830, 1830, 1830, 1830, 1950, 1950, 1450, 1450, 1950, 1950, 2050, 2050],
["Храна", 23250, 23780, 24019, 24117, 24389, 24571, 24736, 24951, 25111, 25389, 25531, 25923],
["Остало", 4500, 3700, 5100, 3500, 2750, 4250, 7320, 8250, 3270, 4290, 3200, 8390]
]
(а) Представи табелу структуром DataFrame. Индексирај табелу.
(б) Додај табели нову врсту "Укупно" па у њу унеси укупне трошкове ове породице по месецима (колико је породица укупно потрошила у јануару, колико у фебруару итд).
(в) Додај табели нову колону "Просечно" па у њу унеси просечну потрошњу ове породице по ставкама (колико је породица просечно потрошила на станарину, колико на струју, итд).
(г) Добијену табелу упиши у датотеку Troskovi.csv водећи рачуна о томе да у табели има података који су записани ћирилицом.
Задатак 5. У табели испод су дати подаци о продаји неких производа у пет пословних јединица једне компаније (бројеви представљају број продатих комада у једном месецу):
Производ | ПЈ1 | ПЈ2 | ПЈ3 | ПЈ4 | ПЈ5 |
---|---|---|---|---|---|
Ципеле | 5 | 17 | 3 | 11 | 9 |
Кошуља | 8 | 6 | 7 | 4 | 0 |
Каиш | 4 | 1 | 3 | 5 | 1 |
Панталоне | 4 | 2 | 6 | 4 | 5 |
Чарапе (пар) | 8 | 9 | 7 | 4 | 9 |
Кравата | 1 | 0 | 3 | 2 | 4 |
Следећа табела садржи цене ових производа у динарима:
Производ | Цена (дин) |
---|---|
Ципеле | 11.250 |
Кошуља | 6.500 |
Каиш | 4.750 |
Панталоне | 2.500 |
Чарапе (пар) | 750 |
Кравата | 3.500 |
Ћелија испод садржи податке из ове две табеле представљене у облику листе:
# изврши ову ћелију
proizvodi = [
["Ципеле", 5, 17, 3, 11, 9],
["Кошуља", 8, 6, 7, 4, 0],
["Каиш", 4, 1, 3, 5, 1],
["Панталоне", 4, 2, 6, 4, 5],
["Чарапе (пар)", 8, 9, 7, 4, 9],
["Кравата", 1, 0, 3, 2, 4]]
cene = [
["Ципеле", 11250],
["Кошуља", 6500],
["Каиш", 4750],
["Панталоне", 2500],
["Чарапе (пар)", 750],
["Кравата", 3500]]
(а) Представи обе табеле структуром DataFrame. Индексирај обе табеле.
(б) Транспонуј табелу са производима и додај јој нову колону "Зарада".
(в) У колони "Зарада" израчунај зараду сваке пословне јединице у том месецу.
(г) Сортирај табелу према заради пословних јединица и прикажи зараде дијаграмом.