Pandas – k čemu slouží, k čemu jej raději nepoužijeme a jeho alternativy | Mňamka #435

Úvodem

Knihovny jazyka Python jsou sady nástrojů, které obsahují předem napsaný kód, který nám pomáhá zjednodušit složité úlohy a urychlit vývoj. Jedna z takových knihoven je knihovna Pandas, která je speciálně navržena pro práci s daty. V této mňamce se podíváme na to, kde Pandas použít, jak si stojí v porovnání s ostatními knihovnami, a kde ho naopak nepoužívat.

Pandas je jako datový švýcarský nůž. Umožňuje načítat různé formáty, jako jsou CSV a Excel soubory nebo databáze SQL. Po načtení dat je umožňuje očistit, filtrovat podle různých kritérií, vykreslovat grafy, a nebo napočítávat souhrnné statistiky. Jeho výhodou je jednoduchá a intuitivní syntaxe, a taky rychlost, takže můžeme zpracovávat velké soubory dat, pokud na to máme dostatečně výkonný počítač. Na druhou stranu je Pandas poměrně náročný na paměť.

Kde Pandas použít?

Kdo zakopl o termín Pandas už pravděpodobně zakopl i o termín Data Science. Cílem Data Science je dostat z dat informace, které bychom nezískali pouhým vykreslením dat do grafu nebo jednoduchou sql transformací. Data Science zahrnuje činnosti jako shromažďování, čištění, transformaci, analýzu a vizualizaci velkých a komplexních datových souborů s cílem identifikovat vzory, trendy a vztahy. V tomto nám Pandas může hodně pomoci.

Ve své praxi se k této knihovně často obracím, když klient potřebuje rychlou ad hoc analýzu (např. potvrzení existence nějakého trendu, který, pokud se jeho existence potvrdí, budeme dále zpracovávat klasicky pomocí SQL), potřebuje se podívat, jaká data vlastně má a jak jsou kvalitní (viz EDA níže).

Pandas se velmi často používá v kombinaci s Jupyter Notebookem, což je editor, který obsahuje kód, popisy, obrázky, grafy, matematické vzorce a dokonce i interaktivní prvky. Pomocí Jupyter Notebooku bude celá analýza přehledně na jednom místě, takže je jasné, na co jsme jak přišli. Klientovi pak můžeme přímo ukázat grafy, a zároveň je v případě jeho dotazů upravovat či generovat nové.

👉 Exploratory Data Analysis (EDA neboli průzkumná analýza dat)

Před sestavením jakýchkoliv modelů potřebují datoví vědci často prozkoumat a vizualizovat svá data, aby věděli, jak data vypadají a jaká je jejich kvalita (Chybí nějaké záznamy? Vyskytují se v datovém souboru nějaké extrémní hodnoty? Můžeme z nich získat informace, které potřebujeme?).

Pandas poskytuje mnoho funkcí pro shrnutí a vizualizaci dat, například describe(), value_counts(), info() a plot(). Podrobnější popis těchto funkcí shrnuje např. tento článek: https://www.analyticsvidhya.com/blog/2021/04/20-must-known-pandas-function-for-exploratory-data-analysis-eda/.

Hezký příklad na EDA v čestině je zpracován tady: https://naucse.python.cz/2020/pydata-ostrava-jaro/pydata/univariate/.

👉 Čištění dat

Čištění dat je proces identifikace a oprav chyb, nesrovnalostí a chybějících hodnot v souboru dat. Pandas poskytuje několik funkcí pro čištění dat, například dropna(), fillna() a replace().

👉 Feature engineering

Feature engineering je technika strojového učení, která se využívá u vytváření Machine Learning modelů. Využívá stávající data k vytvoření nových proměnných, které nejsou v trénovací množině, s cílem zjednodušit a urychlit transformaci dat, a zároveň zvýšit přesnost modelu. Velmi jednoduchým příkladem může být vytvoření proměnné “plocha objektu”, která může být pro model daleko snáze uchopitelná, než používání délek stran objektu. Více o feature engineering se můžeme dočíst např. tady: https://towardsdatascience.com/what-is-feature-engineering-importance-tools-and-techniques-for-machine-learning-2080b0269f10.

👉 Analýza časových řad

Časové řady jsou typem dat, u nichž se měření provádí v průběhu času. Jde například o ceny akcií nebo údaje o počasí. Jednoduchý příklad v češtině, jak pracovat s časovými řadami, najdeme na stránkách naucse.python.cz - https://naucse.python.cz/2020/pydata-ostrava-jaro/pydata/timeseries/.

👉 Strojové učení

Strojové učení je podoblast datové vědy, která zahrnuje vytváření modelů, které se mohou učit z dat a provádět předpovědi nebo rozhodnutí (Odejde mi tento zákazník? Jaká bude cena nemovitostí za půl roku? Je na rentgenovém snímku zdravý orgán?). Tady často Pandas používáme s dalšími knihovnami, které jsou pro strojové učení přímo určeny (scikit-learn, pytorch…). O tom, jestli jsou data připravena na stavbu modelu, jsme psali nedávno tady: https://www.bizztreat.com/blog/machine-learning-modelovani-predikce-jsou-na-ne-vase-data-pripravena-mnamka-192.

Další knihovny pro zpracování dat

👉 Pandas vs CSV knihovna

Knihovna csv nepřekvapivě obsahuje funkce pro práci se soubory CSV (comma-separated value). Jedná se o základní modul, který poskytuje pouze základní funkce, jako je čtení a zápis souborů CSV, zatímco modul Pandas je výkonnější a poskytuje širší škálu nástrojů pro analýzu dat. Modul Pandas například umožňuje snadné filtrování, agregaci a slučování dat, což by při použití standardního modulu csv bylo mnohem obtížnější.

Pokud však potřebujete provádět pouze základní operace s malými soubory dat, je standardní modul csv lepší volbou. Je lehký a snadno použitelný, takže je ideální pro jednoduché skripty. Pokud potřebujeme pouze otevřít csv soubor, je zbytečné načítat velkou knihovnu Pandas. Přečtěte si velmi dobrou Mňamku Toma Votavy na toto téma: https://www.bizztreat.com/blog/kdyz-se-bere-kanon-na-mouchu-mnamka-52.

👉 Pandas vs Numpy

NumPy je balíček, který poskytuje numerické operace s poli (maticemi). Ačkoli není speciálně určen pro práci s daty, lze jej použít pro mnoho stejných operací jako Pandas, například k slicingu, filtrování nebo agregaci dat. Používá se především pro matematické operace, pro práci s tenzory, multidimenzionálními maticemi. Oproti Pandas bychom jej použili ve chvíli, kdy bychom pracovali čistě s numerickými daty a prováděli na nich matematické operace. Při práci s poli (arrays) je NumPy rychlejší a méně náročné na pamět. Naopak Pandas poskytuje podporu pro heterogenní data, což znamená, že můžeme snadněji pracovat s daty, která mají smíšené typy, například text a čísla.

👉 Pandas vs Dask

Dask je balíček, který poskytuje paralelní výpočetní možnosti pro analýzu dat v jazyce Python. Stejně jako Pandas poskytuje nástroje pro manipulaci s daty a jejich analýzu, ale s přidanou možností paralelní práce s většími soubory dat.

Pokud pracujeme s velmi velkými datovými sadami, které se nevejdou do paměti, může být Dask lepší volbou než Pandas. Pokud však pracujete s menšími datovými sadami, které se do paměti vejdou, je Pandas obecně rychlejší, intuitivnější a jednodušší na používání.

Obecně platí, že volba mezi Pandas a jinými metodami zpracování dat v jazyce Python závisí na konkrétním případu použití. Navíc je nutno dodat, že nástroje často kombinujeme.

Máte k článku nějaké otázky nebo připomínky? Klidně nám napište, rádi to s Vámi probereme :-)

Barbora Kacerovská
datový detektiv
LinkedIn

Jak ohodnotit lokalitu: Data vs. Pocity | Mňamka #523

Jak ohodnotit lokalitu: Data vs. Pocity | Mňamka #523

V dnešním dynamickém světě se může zdát, že rozhodování o tom, kde otevřít další pobočku, je náročné, a že v něm hraje roli až příliš mnoho faktorů. Často kladené dotazy, které dostáváme, se točí kolem hodnocení potenciálu konkrétních lokalit. V tomto článku vám ukážeme, jak Location Intelligence může poskytnout přesné odpovědi na vaše otázky a zajistit, že vaše rozhodnutí budou založena na datech a faktech, nikoli na pocitech a zdánlivé atraktivitě místa.

Vánoční dashboard datových detektivů | Mňamka #520

Vánoční dashboard datových detektivů | Mňamka #520

Chtěli jsme pro vás připravit nějaký netradiční obsah, trochu odlehčit, když jsou ty Vánoc a tak jsme sestavili dotazník s vánočně laděnými otázkami a poslali ho všem datovým detektivům, abychom zjistili, co pro naše kolegy Vánoce znamenají. A máme pro vás VÝSLEDKY! Pojďme na ně.

Tableau - Performance Tuning (časť 3.) | Mňamka #506

Tableau - Performance Tuning (časť 3.) | Mňamka #506

Chcete vědět, jak zlepšit rychlost a efektivitu vašeho dashboardu v Tableau? Tento článek vás seznámí s významem materializace výpočtů, výhodami agregace dat a důležitostí specifikace datových zdrojů. Navíc se dozvíte o nové funkci "workbook optimizer", která vám nabídne automatizované doporučení pro dosažení optimálního výkonu vašeho dashboardu. Přečtěte si více a dozvíte se, jak dosáhnout rychlejšího a hladšího provozu vašich vizualizací v Tableau.