13. diel - Pandas - Metódy na výber, radenie a analýzu dát Nové

V predchádzajúcom kvíze, Kvíz - Práca s reťazcami, matematickými dátami v Pandas, sme si overili nadobudnuté skúsenosti z predchádzajúcich lekcií.

V tomto tutoriále knižnice Pandas v Pythone sa pozrieme na metódy pre výber, radenie a analýzu dát.

Metódy na výber, radenie a analýzu dát v Pandas

Ukážeme si, ako vyberať špecifické časti datasetu, zoradiť dáta podľa rôznych kritérií a vykonávať analýzu na získanie dôležitých informácií a prehľadov. Tieto techniky nám pomôžu lepšie porozumieť dátam a pripraviť ich pre ďalšie analýzy. Poďme si však prvýkrát naimportovať dáta.

Import dát

Použijeme iné dáta, než v predchádzajúcich lekciách. Naimportujeme si dataset, ktorý simuluje úbytok zamestnancov v zdravotníckom sektore v USA. Dataset je vytvorený na základe reálnych dát a snaží sa predpovedať, či zamestnanec zostane vo firme, alebo odíde. Tak ako vždy je csv súbor dostupný v prílohe na konci lekcie.

Naimportujme si teda dataset zo súboru healthcare.csv:

import pandas as pd
df = pd.read_csv('healthcare.csv')
df

Po vykonanom importe vidíme dáta:

Import datasetu - Pandas - Vizualizácia dát v Pythone - Pandas - Vizualizácia dát v Pythone

Výber dát

Začneme zľahka. Najskôr si ukážeme metódy, ktorými vyberieme určitý počet riadkov z nášho datasetu. Tieto metódy následne využijeme neskôr, a to napríklad v kombinácii s radením. Využijeme tak vzor Method chaining, ktorý je v Pandas veľmi užitočný a bežne používaný.

Viac sa o vzore Method chaining dozvieme v lekcii Method chaining a method cascading.

head()

Pomocou metódy head() zobrazíme prvých n riadkov z datasetu. V predvolenom nastavení je to päť riadkov, ale to môžeme zmeniť. Zavolajme si head() na našom datasete:

df.head()

Výstupom je skutočne prvých päť riadkov:

Použitie metódy head - Pandas - Vizualizácia dát v Pythone - Pandas - Vizualizácia dát v Pythone

tail()

Rovnako ako sme vybrali prvých n riadkov pomocou head(), môžeme tiež vybrať posledných n riadkov využitím metódy tail().

Nech sa neopakujeme, vyberieme si posledných sto riadkov:

df.tail(100)

Výstupom teda bude posledných sto záznamov:

Použitie metódy tail - Pandas - Vizualizácia dát v Pythone - Pandas - Vizualizácia dát v Pythone

V zobrazení ich samozrejme toľko neuvidíme, ale pracovať s nimi môžeme.

Radenie dát

Radenie dát je kľúčová operácia pri práci s tabuľkovými dátami. Umožňuje nám usporiadať hodnoty v datasete podľa špecifických kritérií, čo je užitočné pre prehľadnosť, analýzu trendov alebo identifikáciu extrémnych hodnôt.

V tejto časti sa zameriame na niekoľko základných metód, ktoré nám pomôžu zoradiť dáta v Pandas. Tieto metódy nám umožnia zoradiť dáta buď podľa hodnôt v stĺpcoch, podľa indexu alebo podľa iných špecifických parametrov, ako sú najnižšie alebo najvyššie hodnoty v stĺpci.

Metódy, ktoré si ukážeme, zahŕňajú:

  • Radenie podľa hodnoty v stĺpci metódou sort_values().
  • Radenie podľa indexu metódou sort_index().
  • Priraďovanie poradia hodnotám v stĺpci metódou rank().
sort_values()

Metóda sort_values() umožňuje radenie hodnôt v konkrétnom stĺpci dataframe. Hodnoty môžeme zoradiť buď vzostupne alebo zostupne. V predvolenom nastavení je zoradenie vzostupne. Vzostupné zoradenie je udávané parametrom ascending a hodnotou True.

Poďme si zoradiť záznamy podľa mesačného príjmu, znázorneného stĺpcom MonthlyIncome. Vyberieme si iba tento stĺpec a následne zavoláme metódu sort_values():

df[['MonthlyIncome']].sort_values(by='MonthlyIncome')

Ďalej sme v metóde sort_values() pridali parameter by, ktorý určuje stĺpec, podľa ktorého radíme.

Z dát vidíme zoradenie mesačných platov v dolároch od najmenšieho po najväčšie:

Zoradenie pomocou metódy sort_values - Pandas - Vizualizácia dát v Pythone - Pandas - Vizualizácia dát v Pythone

Skúsme to aj obrátene. Pridáme parameter ascending a nastavíme jeho hodnotu na False, čím docielime zostupné radenie:

df[['MonthlyIncome']].sort_values(by='MonthlyIncome', ascending=False)

Najvyšší plat tak teraz bude hore:

Zoradenie zostupne pomocou sort_values - Pandas - Vizualizácia dát v Pythone - Pandas - Vizualizácia dát v Pythone

sort_index()

Metóda sort_index slúži na radenie riadkov podľa ich indexu. Ak máme indexy v neusporiadanom poradí, môžeme ich zoradiť tak, aby boli usporiadané vzostupne alebo zostupne. Dáta v našom datasete majú záznamy zoradené vzostupne, preto si ich skúsime zoradiť zostupne.

Podobne ako tomu bolo pri metóde sort_values(), využijeme parametra ascending, do ktorého vložíme hodnotu False:

df.sort_index(ascending=False)

Výstupom bude zostupné radenie všetkých dát podľa indexu:

Zoradenie podľa indexu - Pandas - Vizualizácia dát v Pythone - Pandas - Vizualizácia dát v Pythone

rank()

Metóda rank() nám priradí poradie hodnotám v stĺpci podľa ich veľkosti. Najmenšia hodnota dostane poradie 1, druhá najmenšia 2 a najväčšia potom 1676 (v našom datasete). Pri zhodných hodnotách sa poradie určuje podľa parametra metódy.

Metóda môže prijímať v parametri method tieto hodnoty:

  • average: Priemerné poradie pre zhodné hodnoty.
  • min: Najnižšie možné poradie zhodnej hodnoty.
  • max: Najvyššie možné poradie pre zhodné hodnoty.
  • first: Poradie sa určí podľa poradia v datasete.
Poďme si ukázať, ako rank() funguje. Najskôr si vyberieme niekoľko záznamov pomocou metódy head() a pridáme umelo zhodnú hodnotu, aby sme videli rozdiely v rôznych režimoch radenia:
df_rank = df[['MonthlyIncome']].head(10)
df_rank.loc[0, 'MonthlyIncome'] = 3468
df_rank['MonthlyIncome'].rank(method='average')

Vo výstupe teda dostaneme:

Zoradenie podľa poradia s priemerom - Pandas - Vizualizácia dát v Pythone - Pandas - Vizualizácia dát v Pythone

Dostali sme desať hodnôt, kde každá má svoje poradie, ktoré je hodnotené číslicami 1.010.0. Dve hodnoty sa nám opakujú, a preto majú zhodné poradie 6.5. Docielili sme to práve využitím hodnoty average v parametri method.

Vyskúšajme si to isté aj pri použití hodnoty max. Aby toho nebolo málo, zoraďme si poradie zostupne využitím už nami poznáme metódy sort_values():

df_rank['MonthlyIncome'].rank(method='max').sort_values(ascending=False)

Vidíme, že poradie je teraz zoradené od najväčšieho po najmenšie a opakujúce sa hodnoty majú obe poradie 7.0, pretože sme využili hodnotu max:

Zoradenie podľa poradia s maximálnou hodnotou - Pandas - Vizualizácia dát v Pythone - Pandas - Vizualizácia dát v Pythone

Analýza dát

Analýza dát nám pomôže získať náhľad do štruktúry datasetu, identifikovať najvyššie a najnižšie hodnoty, rozloženie dát alebo odhaliť prípadné anomálie. Ukážeme si niektoré metódy, ktoré slúžia na tieto účely.

nsmallest()

Metóda nsmallest() slúži na výber n riadkov s najnižšími hodnotami v určitom stĺpci. Môžeme ju využiť napríklad na identifikáciu desiatich najmladších zamestnancov:

df.nsmallest(10, 'Age')

Výstupom je desať najmladších zamestnancov:

Zobrazenie desiatich najmenších hodnôt - Pandas - Vizualizácia dát v Pythone - Pandas - Vizualizácia dát v Pythone

nlargest()

Poďme na to obrátene. Vyberieme si n najväčších hodnôt. Práve na výber n najväčších hodnôt slúži metóda nlargest(). Tentokrát pridáme niečo navyše. Okrem veku si pridáme ešte stĺpec DistanceFromHome a získame si tak desať najstarších zamestnancov s najväčšou vzdialenosťou od domova:

df.nlargest(10, ['Age', 'DistanceFromHome'])[['Age', 'DistanceFromHome']]

Vo výstupe vidíme:

Zobrazenie desiatich najväčších hodnôt - Pandas - Vizualizácia dát v Pythone - Pandas - Vizualizácia dát v Pythone

Všimnime si, že hoci niektorí zamestnanci to majú od domova ďalej, tak sú zobrazení nižšie, pretože sú mladší. Ako hlavný určujúci faktor je teda stĺpec Age a až potom stĺpec DistanceFromHome.

sample()

Ako posledný si predstavíme metódu sample(). Využitím sample() môžeme náhodne vybrať riadky z datasetu. Zvoliť si môžeme počet riadkov alebo percentuálny podiel údajov.

Vyberieme si teda pätnásť náhodných riadkov:

df.sample(15)

Vo výstupe vidíme:

Zobrazenie pätnástich náhodných hodnôt - Pandas - Vizualizácia dát v Pythone - Pandas - Vizualizácia dát v Pythone

Vyskúšajme si metódu znova, nech sa uistíme, že dáta sú naozaj náhodné. Pre náhodný výber učitého percenta záznamov využijeme parameter frac a nastavíme hodnotu. Nastavme si, že chceme 30 % záznamov:

df.sample(frac=0.3)

Vo výstupe dostaneme niečo cez päťsto záznamov:

Zobrazenie tridsiatich percent náhodných hodnôt - Pandas - Vizualizácia dát v Pythone - Pandas - Vizualizácia dát v Pythone

V nasledujúcej lekcii, Pandas - Práca s multiindexmi, sa zameriame na prácu s multiindexmi, ktoré poskytujú mocné nástroje pre organizáciu a analýzu zložitejších dát.


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 5x (58.73 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Python

 

Ako sa ti páči článok?
Pred uložením hodnotenia, popíš prosím autorovi, čo je zleZnakov 0 z 50-500
Predchádzajúci článok
Kvíz - Práca s reťazcami, matematickými dátami v Pandas
Všetky články v sekcii
Pandas - Vizualizácia dát v Pythone
Preskočiť článok
(neodporúčame)
Pandas - Práca s multiindexmi
Článok pre vás napísal Adam Hamšík
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
.
Aktivity