NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Lekce 13 - Pandas - Metody pro výběr, řazení a analýzu dat Nové

V předchozím kvízu, Kvíz - Práce s řetězci, matematickými daty v Pandas, jsme si ověřili nabyté zkušenosti z předchozích lekcí.

V tomto tutoriálu knihovny Pandas v Pythonu se podíváme na metody pro výběr, řazení a analýzu dat.

Metody pro výběr, řazení a analýzu dat v Pandas

Ukážeme si, jak vybírat specifické části datasetu, řadit data podle různých kritérií a provádět analýzu pro získání důležitých informací a přehledů. Tyto techniky nám pomohou lépe porozumět datům a připravit je pro další analýzy. Pojďme si ovšem prvně naimportovat data.

Import dat

Použijeme jiná data, než v předchozích lekcích. Naimportujeme si dataset, který simuluje úbytek zaměstnanců ve zdravotnickém sektoru v USA. Dataset je vytvořen na základě reálných dat a snaží se předpovědět, zda zaměstnanec zůstane ve firmě, nebo odejde. Tak jako vždycky je csv soubor dostupný v příloze na konci lekce.

Naimportujme si tedy dataset ze souboru healthcare.csv:

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

Po provedeném importu vidíme data:

Import datasetu - Pandas - Vizualizace dat v Pythonu

Výběr dat

Začneme zlehka. Nejdříve si ukážeme metody, kterými vybereme určitý počet řádků z našeho datasetu. Tyto metody následně využijeme později, a to například v kombinaci s řazením. Využijeme tak vzoru Method chaining, který je v Pandas velmi užitečný a běžně používaný.

Více se o vzoru Method chaining dozvíme v lekci Method chaining a method cascading.

head()

Pomocí metody head() zobrazíme prvních n řádků z datasetu. Ve výchozím nastavení je to pět řádků, ale to můžeme změnit. Zavolejme si head() na našem datasetu:

df.head()

Výstupem je skutečně prvních pět řádků:

Použití metody head - Pandas - Vizualizace dat v Pythonu

tail()

Stejně jako jsme vybrali prvních n řádků pomocí head(), můžeme taky vybrat posledních n řádků využitím metody tail().

Ať se neopakujeme, vybereme si posledních sto řádků:

df.tail(100)

Výstupem tedy bude posledních sto záznamů:

Použití metody tail - Pandas - Vizualizace dat v Pythonu

V zobrazení jich samozřejmě tolik neuvidíme, ale pracovat s nimi můžeme.

Řazení dat

Řazení dat je klíčová operace při práci s tabulkovými daty. Umožňuje nám uspořádat hodnoty v datasetu podle specifických kritérií, což je užitečné pro přehlednost, analýzu trendů nebo identifikaci extrémních hodnot.

V této části se zaměříme na několik základních metod, které nám pomohou seřadit data v Pandas. Tyto metody nám umožní řadit data buď podle hodnot ve sloupcích, podle indexu nebo podle jiných specifických parametrů, jako jsou nejnižší nebo nejvyšší hodnoty ve sloupci.

Metody, které si ukážeme, zahrnují:

  • Řazení podle hodnoty ve sloupci metodou sort_values().
  • Řazení podle indexu metodou sort_index().
  • Přiřazování pořadí hodnotám ve sloupci metodou rank().

sort_values()

Metoda sort_values() umožňuje řazení hodnot v konkrétním sloupci dataframe. Hodnoty můžeme seřadit buď vzestupně nebo sestupně. Ve výchozím nastavení je seřazení vzestupně. Vzestupné seřazení je udáváno parametrem ascending a hodnotou True.

Pojďme si seřadit záznamy podle měsíčního příjmu, znázorněného sloupcem MonthlyIncome. Vybereme si pouze tento sloupec a následně zavoláme metodu sort_values():

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

Dále jsme v metodě sort_values() přidali parametr by, který určuje sloupec, podle kterého řadíme.

Z dat vidíme seřazení měsíčních platů v dolarech od nejmenšího po největší:

Seřazení pomocí metody sort_values - Pandas - Vizualizace dat v Pythonu

Zkusme to i obráceně. Přidáme parametr ascending a nastavíme jeho hodnotu na False, čímž docílíme sestupného řazení:

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

Nejvyšší plat tak nyní bude nahoře:

Seřazení sestupně pomocí sort_values - Pandas - Vizualizace dat v Pythonu

sort_index()

Metoda sort_index slouží pro řazení řádků podle jejich indexu. Pokud máme indexy v neuspořádaném pořadí, můžeme je seřadit tak, aby byly uspořádány vzestupně nebo sestupně. Data v našem datasetu mají záznamy seřazeny vzestupně, proto si je zkusíme seřadit sestupně.

Podobně jako tomu bylo u metody sort_values(), využijeme parametru ascending, do kterého vložíme hodnotu False:

df.sort_index(ascending=False)

Výstupem bude sestupné řazení všech dat podle indexu:

Seřazení podle indexu - Pandas - Vizualizace dat v Pythonu

rank()

Metoda rank() nám přiřadí pořadí hodnotám ve sloupci podle jejich velikosti. Nejmenší hodnota obdrží pořadí 1, druhá nejmenší 2 a největší pak 1676 (v našem datasetu). Při shodných hodnotách se pořadí určuje podle parametru metody.

Metoda může přijímat v parametru method tyto hodnoty:

  • average: Průměrné pořadí pro shodné hodnoty.
  • min: Nejnižší možné pořadí shodné hodnoty.
  • max: Nejvyšší možné pořadí pro shodné hodnoty.
  • first: Pořadí se určí podle pořadí v datasetu.

Pojďme si ukázat, jak rank() funguje. Nejdříve si vybereme několik záznamů pomocí metody head() a přidáme uměle shodnou hodnotu, abychom viděli rozdíly v různých režimech řazení:

df_rank = df[['MonthlyIncome']].head(10)
df_rank.loc[0, 'MonthlyIncome'] = 3468
df_rank['MonthlyIncome'].rank(method='average')

Ve výstupu tedy dostaneme:

Seřazení podle pořadí s průmerem - Pandas - Vizualizace dat v Pythonu

Dostali jsme deset hodnot, kde každá má své pořadí, které je hodnoceno číslicemi 1.010.0. Dvě hodnoty se nám opakují, a proto mají shodné pořadí 6.5. Docílili jsme toho právě využitím hodnoty averagev parametru method.

Vyzkoušejme si to samé i při použití hodnoty max. Aby toho nebylo málo, seřaďme si pořadí sestupně využitím již námi známe metody sort_values():

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

Vidíme, že pořadí je nyní seřazeno od největšího po nejmenší a opakující se hodnoty mají obě pořadí 7.0, protože jsme využili hodnotu max:

Seřazení podle pořadí s maximální hodnotou - Pandas - Vizualizace dat v Pythonu

Analýza dat

Analýza dat nám pomůže získat náhled do struktury datasetu, identifikovat nejvyšší a nejnižší hodnoty, rozložení dat nebo odhalit případné anomálie. Ukážeme si některé metody, které slouží těmto účelům.

nsmallest()

Metoda nsmallest() slouží k výběru n řádků s nejnižšími hodnotami v určitém sloupci. Můžeme ji využít například k identifikaci deseti nejmladších zaměstnanců:

df.nsmallest(10, 'Age')

Výstupem je deset nejmladších zaměstnanců:

Zobrazení deseti nejmenších hodnot - Pandas - Vizualizace dat v Pythonu

nlargest()

Pojďme na to obráceně. Vybereme si n největších hodnot. Právě k výběru n největších hodnot slouží metoda nlargest(). Tentokrát přidáme něco navíc. Kromě věku si přidáme ještě sloupec DistanceFromHome a získáme si tak deset nejstarších zaměstnanců s největší vzdáleností od domova:

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

Ve výstupu vidíme:

Zobrazení deseti největších hodnot - Pandas - Vizualizace dat v Pythonu

Všimněme si, že přestože někteří zaměstnanci to mají od domova dál, tak jsou zobrazeni níž, protože jsou mladší. Jako hlavní určující faktor je tedy sloupec Age a až poté sloupec DistanceFromHome.

sample()

Jako poslední si představíme metodu sample(). Využitím sample() můžeme náhodně vybrat řádky z datasetu. Zvolit si můžeme počet řádků nebo procentuální podíl dat.

Vybereme si tedy patnáct náhodných řádků:

df.sample(15)

Ve výstupu vidíme:

Zobrazení patnácti náhodných hodnot - Pandas - Vizualizace dat v Pythonu

Vyzkoušejme si metodu znovu, ať se ujistíme, že data jsou opravdu náhodná. Pro náhodný výběr učitého procenta záznamů využijeme parametr frac a nastavíme hodnotu. Nastavme si, že chceme 30 % záznamů:

df.sample(frac=0.3)

Ve výstupu dostaneme něco přes pět set záznamů:

Zobrazení třiceti procent náhodných hodnot - Pandas - Vizualizace dat v Pythonu

V následující lekci, Pandas - Práce s multiindexy, se zaměříme na práci s multiindexy, které poskytují mocné nástroje pro organizaci a analýzu složitějších dat.


 

Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 3x (59.79 kB)
Aplikace je včetně zdrojových kódů v jazyce Python

 

Předchozí článek
Kvíz - Práce s řetězci, matematickými daty v Pandas
Všechny články v sekci
Pandas - Vizualizace dat v Pythonu
Přeskočit článek
(nedoporučujeme)
Pandas - Práce s multiindexy
Článek pro vás napsal Adam Hamšík
Avatar
Uživatelské hodnocení:
Ještě nikdo nehodnotil, buď první!
.
Aktivity