2. diel - Pandas - Tvorba vlastného datasetu
V predchádzajúcej lekcii, Pandas - Predstavenie knižnice, sme sa dozvedeli, ako nainštalovať knižnicu Pandas a na čo ju môžeme využiť.
V tomto tutoriáli knižnice Pandas v Pythone sa zameriame
na to, ako vytvoriť vlastný dataset. Najprv si vysvetlíme
funkciu DataFrame() a potom si ju vyskúšame na reálnych
príkladoch.
Tvorba datasetu v Pandas
Začnime tým, že si náš otvorený projekt v Jupyter Notebooku pomenujeme.
Klikneme na názov. Otvorí sa nám okno, kde si svoj projekt pomenujeme
napríklad First_dataset.ipynb. Projekt sa nám automaticky ukladá
do zložky, z ktorej sme Jupyter Notebook spúšťali.
Pandas DataFrame()
Na prácu s datasetom využijeme funkcie DataFrame(). Funkcia
vyzerá takto:
pandas.DataFrame(data, index, columns)
V parametri data je súbor informácií, z ktorého budeme
čerpať do nášho dataframu. Dáta môžu byť v podobe listu, slovníka a
pod. Parameter index slúži na očíslovanie našich položiek.
Môže zostať nevyplnený a v takom prípade bude náš zoznam začínať od
nuly. A konečne parameter columns slúži na pomenovanie stĺpcov.
Opäť platí, že ak nebude vyplnený, budú stĺpce pomenované číselne
nulou počnúc.
Začneme tým, že vytvoríme jednoduchý dataframe. Najprv vytvoríme
premennú data, do ktorej vložíme čísla od jednotky do päťky.
Zapísaná premenná bude teda takto:
data = [1,2,3,4,5]
Teraz doplníme náš kód o vyššie spomínanú funkciu. V lekcii Pandas - Predstavenie
knižnice sme importovali pandas pod skratkou pd, náš kód
teda bude vyzerať takto:
import pandas as pd import matplotlib.pyplot as plt import numpy as np data = [1,2,3,4,5] df = pd.DataFrame(data) print(df)
Keď stlačením Shift + Enter spustíme kód, zobrazí sa nám tabuľka:

Táto tabuľka je však pomerne neprehľadná. Môžeme ju sprehľadniť napríklad tým, že pomenujeme stĺpce. V našom prípade teda jeden stĺpec. Rovnako ju môžeme upraviť, aby číslovanie začínalo od jednotky, nie od nuly. Kód potom bude vyzerať takto:
import pandas as pd import matplotlib.pyplot as plt import numpy as np data = [1,2,3,4,5] columns = ["Numbers"] df = pd.DataFrame(data, columns = columns) df.index += 1 print(df)
Poďme si teraz prebrať zmeny, ktoré sme v kóde urobili. Vytvorili sme
zoznam columns, do ktorého sme vložili všetky nadpisy. Ten sme
následne vyvolali cez funkciu DataFrame(). Ďalej sme na
predposlednom riadku upravili index zvýšením každého čísla o
1. Rovnaký efekt by mal aj zápis
df.index = df.index + 1:

Nákupný zoznam
Už vieme vytvoriť dataframe s jedným stĺpcom. Skúsime si teda vytvoriť
dataframe zložitejšie. Predveďme si to na príklade nákupného zoznamu. Pre
nákupný zoznam budeme potrebovať typ položky a
množstvo. To docielime tak, že si vytvoríme premennú, do
ktorej vložíme niekoľko sérií hranatých zátvoriek. V každej hranatej
zátvorke bude typ potraviny a jej množstvo vo formáte typ potraviny a
množstvo ["food", amount]. Zatiaľ čo potravina je dátového
typu string (preto je v úvodzovkách), množstvo je
int (preto bez úvodzoviek). Vytvoríme teda nákupný zoznam,
ktorý bude vyzerať takto:
shopping_list = [["roll", 10], ["apple", 8], ["butter", 1], ["ham", 200], ["milk", 1], ["egg", 15]]
Aby sme zo svojho zoznamu urobili dataframe, využijeme opäť funkciu
DataFrame(). Naše dáta sa teraz skrývajú pod premenou
shopping_list. Aby sme si dataframe urobili ešte prehľadnejší,
pomenujeme stĺpce. Výsledný kód bude vyzerať takto:
shopping_list = [["roll", 10], ["apple", 8], ["butter", 1], ["ham", 200], ["milk", 1], ["egg", 15]] df = pd.DataFrame(shopping_list, columns =['Type', 'Amount']) df.index += 1 print(df)
Keď náš kód spustíme, zobrazí sa nám prehľadná tabuľka nákupného zoznamu:

Hoci máme teraz peknú tabuľku a sami sa v nej určite vyznáme, niekto
ďalší by s nákupom mohol mať problém, pretože by nevedel, čo znamená
uvedené číslo pri každej potravine. Pridajme teda pre istotu ďalší
stĺpec, ktorý bude obsahovať informáciu, o počet čoho sa jedná. To
docielime v dvoch krokoch. Najprv do každej zátvorky pridáme informáciu,
čoho sa dané množstvo týka. Každá zátvorka teraz bude mať formát
["food", amount, ""]. Ďalej musíme pridať tretí názov stĺpca.
Ak by nezodpovedal počet stĺpcov a počet názvov stĺpcov, dostaneme chybovú
hlášku. A je jedno, či ho pomenujeme napríklad Unit alebo ho
necháme prázdny:
shopping_list = [["roll", 10, "pieces"], ["apple", 8, "pieces"], ["butter", 1, "pieces"], ["ham", 200, "grams"], ["milk", 1, "liters"], ["egg", 15, "pieces"]] df = pd.DataFrame(shopping_list, columns =["Type", "Amount", ""]) df.index += 1 print(df)
Výsledný nákupný zoznam bude teda vyzerať takto:

Cvičebný plán
Dataframe si môžeme vytvoriť z rôznych dátových typov. Teraz si na príklade cvičebného plánu ukážeme, ako vytvoriť dataframe zo slovníka. V slovníku priraďujeme kľúču nejakú hodnotu. My použijeme ako kľúč typ cviku a ako hodnotu počet, ktorý sme vykonali za nami zvolené obdobie. Slovník s našimi záznamami z cvičenia môže vyzerať napríklad takto:
exercise = {"push-up": 20,
"squat": 10,
"sit-up": 10,
"leg raise": 10,
"running (km)": 3,
"cycling (km)": 15,
"swimming (m)": 300
}
Keď z neho vyrobíme dataframe rovnakým spôsobom ako predtým zo zoznamu, bude náš kód vyzerať takto:
exercise = {"push-up": 20,
"squat": 10,
"sit-up": 10,
"leg raise": 10,
"running (km)": 3,
"cycling (km)": 15,
"swimming (m)": 300
}
df = pd.DataFrame([exercise])
df.index += 1
print(df)
Výsledok bude vyzerať takto:

Ak existuje práve jedna hodnota ku každému kľúču,
umiestnime premennú exercise do hranatej zátvorky, čím z nej
efektívne urobíme zoznam. Ak nás však neomrzelo cvičiť a chceme
priraďovať viac hodnôt ku každému cviku, musíme premennú
exercise zo zátvorky vybrať a naopak umiestniť do hranatých
zátvoriek všetky hodnoty k našim kľúčom. Povedzme, že sa nám podarilo
cvičiť už štyri týždne v kuse. Preto umiestnime do každej zátvorky
štyri hodnoty, hoci občas nulové:
exercise = {"push-up": [20, 20, 50, 10],
"squat": [10, 0, 15, 0],
"sit-up": [10, 20, 25, 30],
"leg raise": [10, 20, 10, 0],
"running (km)": [3, 5, 0, 4],
"cycling (km)": [15, 10, 25, 0],
"swimming (m)": [300, 0, 0, 800],
}
df = pd.DataFrame(exercise)
df.index += 1
print(df)
Výsledný dataframe potom vyzerá takto:

A sme na konci lekcie. Naučili sme sa, že práca s funkciou Pandas
DataFrame() nie je nijako zvlášť komplikovaná a pritom s ňou
už teraz dokážeme vytvárať prehľadné tabuľky.
V nasledujúcej lekcii, Pandas – Základné vlastnosti DataFrames, sa dozvieme, aké sú základné vlastnosti DataFramov knižnice Pandas a ukážeme si základnú prácu so stĺpcami a riadkami.
