IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

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á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 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 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ý 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 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: First DataFrame - Pandas - Vizualizácia dát v Pythone

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:

First table - Pandas - Vizualizácia dát v Pythone

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 typ potraviny a množstvo ["Type", Amount]. 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:

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šie, 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:

shopping list - Pandas - Vizualizácia dát v Pythone

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 typ potraviny, množstvo a čoho ["Type", Amount, ""]. Ď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 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:

Second table - Pandas - Vizualizácia dát v Pythone

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:

Workout plan table - Pandas - Vizualizácia dát v Pythone

Pokiaľ 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. Pokiaľ nás však neopadla chuť 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:

Workout plan table final - Pandas - Vizualizácia dát v Pythone

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.


 

Predchádzajúci článok
Pandas - Predstavenie knižnice
Všetky články v sekcii
Pandas - Vizualizácia dát v Pythone
Preskočiť článok
(neodporúčame)
Pandas – Základné vlastnosti DataFrames
Článok pre vás napísal Michal Souček
Avatar
Užívateľské hodnotenie:
1 hlasov
Michal
Aktivity