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.
Jak se pracuje s Microsoft Fabric? | Mňamka #531
Microsoft Fabric slibuje revoluci ve zpracování dat ve firmách tím, že zefektivňuje správu dat a umožňuje připravovat, analyzovat a vizualizovat data bez nutnosti používat více oddělených systémů. Teorie zní skvěle, ale jaká je realita, když se rozhodnete tento nový "švýcarský nůž" pro práci s daty implementovat a používat? Podívejme se na to, jak se s Microsoft Fabric pracuje, s jakými výzvami se můžete setkat a jak rychle se stanete odborníkem na tuto platformu.
Co příchod Microsoft Fabric znamená pro Power BI? | Mňamka #530
Power BI stále zůstává vlajkovou lodí, ať v prostředí Mircosoft Fabric či v běžné aplikaci. Jako vizualizační nástroj dat má Power BI nezastupitelnou roli. Pouze v prostředí Microsoft Fabric je nabízen jako SAAS produkt. Jaké jsou první dojmy z nového prostředí? Kde můžete vnímat rozdíly a proč nemít obavy z přechodu na novou platformu.
Vejde se váš dashboard na jednu stránku a proč by vlastně měl? | Mňamka #529
Pokud pracujete s daty, rozhodně už jste se setkali s pojmem „dashboard“. Ať už jde o sledování prodejů, výkonnosti týmu nebo jiných KPIs, dashboardy se staly nezbytným nástrojem pro každodenní rozhodování. Ale položili jste si někdy otázku, zda by se váš dashboard vešel na jednu stránku? A proč byste se na něco takového měli vůbec ptát?