2. diel - Pandas - Tvorba vlastného datasetu
V predchádzajúcej lekcii, Úvod do knižnice Pandas v Pythone , sme sa dozvedeli, ako nainštalovať knižnicu Pandas a na čo ju môžeme využiť.
V tomto tutoriále 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 Prvni_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 sada informácií, z ktorej 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ý av takom prípade bude náš zoznam začínať od nuly. A
konečne parameter columns
slúži na pomenovanie stĺpcov. Opäť
platí, že pokiaľ 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 prvej lekcii 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 = ["Cisla"] 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 o jednom stĺpci. 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 ["potravina", množství]
. Zatiaľ čo potravina je
dátového typu string
(preto je v úvodzovkách), množstvo je
integer
(preto bez úvodzoviek). Vytvoríme teda nákupný zoznam,
ktorý bude vyzerať takto:
nakup = [["rohlik", 10], ["jablka", 8], ["maslo", 1], ["sunka", 200], ["mleko", 1], ["vejce", 15] ]
Aby sme zo svojho zoznamu urobili dataframe, využijeme opäť funkciu
DataFrame()
. Naše dáta sa teraz skrývajú pod premenou
nakup
. Aby sme si dataframe urobili ešte prehľadnejšie,
pomenujeme stĺpce. Výsledný kód bude vyzerať takto:
nakup = [["rohlik", 10], ["jablka", 8], ["maslo", 1], ["sunka", 200], ["mleko", 1], ["vejce", 15] ] df = pd.DataFrame(nakup, columns =['Typ', 'Mnozstvi']) 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 ono množstvo týka. Každá zátvorka teraz bude mať formát
["potravina", množství, "čeho"]
. Ďalej musíme pridať tretí
názov stĺpca. Pokiaľ 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
Jednotka
alebo ho necháme prázdny:
nakup = [["rohlik", 10, "kusu"], ["jablka", 8, "kusu"], ["maslo", 1, "kusu"], ["sunka", 200, "gramu"], ["mleko", 1, "litru"], ["vejce", 15, "kusu"] ] df = pd.DataFrame(nakup, columns =["Typ", "Mnozstvi", ""]) 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:
cvik = {"klik": 20, "drep": 10, "sed-leh": 10, "sklapovacka": 10, "beh (km)": 3, "jizda na kole (km)": 15, "plavani (m)": 300 }
Keď z neho vyrobíme dataframe rovnakým spôsobom ako predtým zo zoznamu, bude náš kód vyzerať takto:
cvik = {"klik": 20, "drep": 10, "sed-leh": 10, "sklapovacka": 10, "beh (km)": 3, "jizda na kole (km)": 15, "plavani (m)": 300 } df = pd.DataFrame([cvik]) df.index += 1 print(df)
Výsledok bude vyzerať takto:
Pokiaľ existuje práve jedna hodnota ku každému kľúču, umiestnime
premennú cvik
do hranatej zátvorky, čím z nej efektívne
urobíme zoznam. Pokiaľ nás však neopadla chuť cvičiť a chceme
priraďovať viac hodnôt ku každému cviku, musíme premennú
cvik
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é:
cvik = {"klik": [20, 20, 50, 10], "drep": [10, 0, 15, 0], "sed-leh": [10, 20, 25, 30], "sklapovacka": [10, 20, 10, 0], "beh (km)": [3, 5, 0, 4], "jizda na kole (km)": [15, 10, 25, 0], "plavani (m)": [300, 0, 0, 800], } df = pd.DataFrame(cvik) 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 budú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.