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.
Ikony v reportu: Zaujměte na první pohled a zjednodušte navigaci | Mňamka #543
Vizuální zkratky, které promění datovou džungli v přehlednou mapu. Zjistěte, jak s pomocí ikon zjednodušit navigaci, zvýraznit klíčové informace a proměnit suchá data v poutavý příběh. Naučte se vybírat vhodné ikony, pracovat s nimi efektivně a odhalte, proč je jejich správné použití klíčové pro srozumitelnost a úspěch vašich reportů.
Jak předvídat chování zákazníků: Churn, životní hodnota a další klíčové ukazatele | Mňamka #542
Porozumění chování zákazníků a jeho predikce jsou dnes klíčové pro firmy, které chtějí budovat loajalitu, zlepšit cílení kampaní a efektivně řídit své marketingové investice. Jak předpovědět, kdy zákazník odejde, jakou má pro firmu hodnotu nebo kdy s největší pravděpodobností znovu nakoupí? V článku se podíváme na klíčové koncepty, jako je predikce odchodu zákazníků (churn), výpočet jejich životní hodnoty (Lifetime Value), odhad pravděpodobnosti další interakce či modelování sklonu k nákupu. Získané poznatky mohou pomoci vytvářet efektivnější marketingové strategie a lepší zákaznickou zkušenost.
MS Fabric: Pojďte si s námi vytvořit první pipeline - 2.část | Mňamka #541
Otevřeli jste poprvé MS Fabric a vůbec se nerorientujete? Už máte zadání a nevíte kam dřív? V tom případě jste tady správně, protože vás provedeme prvními krůčky, jak si dotáhnout do Fabricu první data, zpracovat je a nastavit celý proces v jednoduché pipeline. Ukažte ostatním, jak se to dělá! V tomto článku si představíme konkrétně kroky jako kopírování dat, dataflow, notebooky a zprovoznění pipeline.