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.
Síla dobře navržených dashboardů a KPI | Mňamka #535
V dnešní době chce být každý "data-driven" – rozhodovat se na základě dat, a ne podle pocitů. Jedním z klíčových způsobů, jak toho dosáhnout, jsou správně nastavené KPI a přehledné dashboardy. Ty poskytují jasný přehled o výkonnosti a pomáhají firmám činit rozhodnutí, která opravdu stojí na datových základech, ne na odhadech.
Klíčové ukazatele výkonnosti (KPI): Jak je správně nastavit a efektivně vyhodnotit pomocí business intelligence | Mňamka #534
Jak efektivně řídit růst a sledovat dosažení cílů? Jak klíčové ukazatele výkonnosti (KPI) pomáhají firmám zlepšovat výkon a naplňovat strategické záměry?V článku najdete příklady KPI pro oblasti jako finance, marketing, zákaznický servis, výroba, lidské zdroje a IT, včetně praktických příkladů jejich využití. Zjistěte, jak zavést a sledovat KPI, abyste získali lepší přehled o efektivitě klíčových procesů.
Datové sklady, jezera a lakehouse: Jak vybrat správnou architekturu pro správu dat? | Mňamka #533
Svět správy dat prošel rychlým vývojem, který je poháněn rostoucí potřebou zpracovávat a analyzovat obrovské množství dat v reálném čase. Firmy, které chtějí porozumět svým datům, narazily na různé architektury – datové sklady, datová jezera a nyní i tzv. lakehouse – které nabízejí různé možnosti pro ukládání a správu dat. Tento článek se zabývá těmito třemi architekturami, porovnává jejich výhody a nevýhody a podrobněji se zaměřuje na lakehouse, nejnovější inovaci, která se snaží řešit problémy z dřívějších systémů.