Zde je důvod, proč jsou Pandas nejoblíbenější knihovnou pro analýzu dat Pythonu

Pandas je nejoblíbenější knihovna pro analýzu dat pro Python. Je široce používán datovými analytiky, datovými vědci a inženýry strojového učení.

Spolu s NumPy je to jedna z knihoven a nástrojů, které musí znát každý, kdo pracuje s daty a AI.

V tomto článku prozkoumáme Pandy a funkce, díky kterým je v datovém ekosystému tak populární.

Co je to Pandas?

Pandas je knihovna pro analýzu dat pro Python. To znamená, že se používá k práci a manipulaci s daty z vašeho kódu Pythonu. S Pandas můžete efektivně číst, manipulovat, vizualizovat, analyzovat a ukládat data.

Název „Pandas“ pochází ze spojení slov Panel Data, což je termín z ekonometrie, který se vztahuje k údajům získaným pozorováním více jedinců v průběhu času. Pandas byla původně vydána v lednu 2008 Wesem Kinneym a od té doby se stala nejoblíbenější knihovnou pro svůj případ použití.

V srdci Pandas jsou dvě základní datové struktury, které byste měli znát, Dataframes a Series. Když vytvoříte nebo načtete datovou sadu v Pandas, je reprezentována jako jedna z těchto dvou datových struktur.

V další části prozkoumáme, jaké to jsou, jak se liší a kdy je použití jednoho z nich ideální.

Klíčové datové struktury

Jak již bylo zmíněno dříve, všechna data v Pandas jsou reprezentována pomocí jedné ze dvou datových struktur, Dataframe nebo Series. Tyto dvě datové struktury jsou podrobně vysvětleny níže.

Datový rámec

Tento příklad datového rámce byl vytvořen pomocí fragmentu kódu v dolní části této sekce

Dataframe v Pandas je dvourozměrná datová struktura se sloupci a řádky. Je to podobné jako tabulka v tabulkové aplikaci nebo tabulka v relační databázi.

Skládá se ze sloupců a každý sloupec představuje atribut nebo funkci ve vaší datové sadě. Tyto sloupce jsou pak tvořeny jednotlivými hodnotami. Tento seznam nebo řada jednotlivých hodnot je reprezentována jako objekty řady. Strukturu dat Series podrobněji probereme dále v tomto článku.

Sloupce v datovém rámci mohou mít popisné názvy, takže jsou od sebe odlišené. Tyto názvy jsou přiřazeny při vytváření nebo načítání datového rámce, ale lze je kdykoli snadno přejmenovat.

  Jak používat bash k vytváření adresářů v Linuxu [Guide]

Hodnoty ve sloupci musí být stejného datového typu, i když sloupce nemusí obsahovat data stejného typu. To znamená, že sloupec názvu v datové množině bude ukládat výhradně řetězce. Ale stejná datová sada může mít další sloupce, jako je věk, které ukládají ints.

Datové rámce mají také index používaný k odkazování na řádky. Hodnoty v různých sloupcích, ale se stejným indexem tvoří řádek. Ve výchozím nastavení jsou indexy číslovány, ale lze je znovu přiřadit tak, aby vyhovovaly datové sadě. V příkladu (obrázek výše, kódovaný níže) nastavíme sloupec indexu na sloupec „měsíce“.

import pandas as pd

sales_df = pd.DataFrame({
    'Month': ['January', 'February', 'March'],
    'Jane Doe': [5000, 6000, 5500],
    'John Doe': [4500, 6700, 6000]
})

sales_df.set_index(['Month'], inplace=True)

print(sales_df)

Série

Tato ukázková řada byla vytvořena pomocí kódu v dolní části této sekce

Jak bylo uvedeno výše, řada se používá k reprezentaci sloupce dat v Pandas. Řada je tedy jednorozměrná datová struktura. To je na rozdíl od datového rámce, který je dvourozměrný.

Ačkoli se řada běžně používá jako sloupec v datovém rámci, může také sama o sobě představovat kompletní datovou sadu za předpokladu, že datová sada má pouze jeden atribut zaznamenaný v jednom sloupci. Nebo spíše, datová sada je jednoduše seznam hodnot.

Protože řada je pouze jeden sloupec, nemusí mít název. Hodnoty v řadě jsou však indexovány. Stejně jako index datového rámce lze datový rámec řady upravit z výchozího číslování.

V příkladu (obrázek výše, kódovaný níže) byl index nastaven na různé měsíce pomocí metody set_axis objektu Pandas Series.

import pandas as pd

total_sales = pd.Series([9500, 12700, 11500])
months = ['January', 'February', 'March']

total_sales = total_sales.set_axis(months)

print(total_sales)

Vlastnosti pand

Nyní, když máte dobrou představu o tom, co Pandas je a jaké klíčové datové struktury využívá, můžeme začít diskutovat o funkcích, díky nimž je Pandas tak výkonnou knihovnou pro analýzu dat a v důsledku toho neuvěřitelně populární v rámci Data Science a Machine Learning. Ekosystémy.

#1. Manipulace s daty

Objekty Dataframe a Series jsou měnitelné. Podle potřeby můžete přidávat nebo odebírat sloupce. Kromě toho vám Pandas umožňuje přidávat řádky a dokonce slučovat datové sady.

  Přidejte výkonná přizpůsobení do aplikace Připomenutí na iPhone [Jailbreak]

Můžete provádět numerické výpočty, jako je normalizace dat a logická porovnání po jednotlivých prvcích. Pandas také umožňuje seskupovat data a aplikovat agregované funkce, jako je průměr, průměr, maximum a min. Díky tomu je práce s daty v Pandas hračkou.

#2. Čištění dat

Data získaná z reálného světa mají často hodnoty, které ztěžují práci nebo nejsou ideální pro analýzu nebo použití v modelech strojového učení. Data mohou být nesprávného datového typu, ve špatném formátu nebo mohou úplně chybět. Ať tak či onak, tato data potřebují předběžné zpracování, které se nazývá čištění, než je lze použít.

Pandas má funkce, které vám pomohou vyčistit vaše data. Například v Pandas můžete odstranit duplicitní řádky, vypustit sloupce nebo řádky s chybějícími daty a nahradit hodnoty buď výchozími hodnotami, nebo nějakou jinou hodnotou, jako je průměr sloupce. Existuje více funkcí a knihoven, které spolupracují s Pandas a umožňují vám provádět více čištění dat.

#3. Vizualizace dat

Tento graf byl vygenerován pomocí kódu pod touto částí

I když se nejedná o vizualizační knihovnu jako Matplotlib, Pandas má funkce pro vytváření základních vizualizací dat. A přestože jsou základní, ve většině případů svou práci odvedou.

S Pandas můžete snadno vykreslovat sloupcové grafy, histogramy, rozptylové matice a další různé typy grafů. Zkombinujte to s některými manipulacemi s daty, které můžete provádět v Pythonu, a můžete vytvářet ještě složitější vizualizace, abyste lépe porozuměli vašim datům.

import pandas as pd

sales_df = pd.DataFrame({
    'Month': ['January', 'February', 'March'],
    'Jane Doe': [5000, 6000, 5500],
    'John Doe': [4500, 6700, 6000]
})

sales_df.set_index(['Month'], inplace=True)

sales_df.plot.line()

#4. Analýza časových řad

Pandy také podporují práci s daty s časovým razítkem. Když Pandas rozpozná sloupec jako sloupec s hodnotami datetime, můžete na stejném sloupci provádět mnoho operací, které jsou užitečné při práci s daty časových řad.

Patří mezi ně seskupování pozorování podle časového období a aplikace agregovaných funkcí na ně, jako je součet nebo průměr nebo získání nejstarších nebo nejnovějších pozorování pomocí min a max. S daty časových řad v Pandas můžete samozřejmě dělat mnohem více věcí.

#5. Vstup/výstup v Pandas

Pandas je schopen číst data z nejběžnějších formátů pro ukládání dat. Patří mezi ně JSON, SQL výpisy a CSV. Můžete také zapisovat data do souborů v mnoha z těchto formátů.

  Jak zálohovat a obnovit uložená data PS4

Tato schopnost číst a zapisovat do různých formátů datových souborů umožňuje Pandám bezproblémovou spolupráci s jinými aplikacemi a vytváření datových kanálů, které se dobře integrují s Pandas. To je jeden z důvodů, proč jsou Pandy hojně využívány mnoha vývojáři.

#6. Integrace s jinými knihovnami

Pandas má také bohatý ekosystém nástrojů a knihoven vybudovaných na jeho vrcholu, které doplňují jeho funkčnost. To z ní dělá ještě výkonnější a užitečnější knihovnu.

Nástroje v rámci ekosystému Pandas rozšiřují jeho funkčnost v různých oblastech, včetně čištění dat, vizualizace, strojového učení, vstupu/výstupu a paralelizace. Pandas udržuje registr takových nástrojů ve své dokumentaci.

Úvahy o výkonu a účinnosti v Pandách

Zatímco Pandy ve většině operací září, mohou být notoricky pomalé. Světlou stránkou je, že můžete optimalizovat svůj kód a zlepšit jeho rychlost. Chcete-li to provést, musíte pochopit, jak jsou Pandy stavěny.

Pandas je postaven na NumPy, oblíbené knihovně Pythonu pro numerické a vědecké výpočty. Proto, stejně jako NumPy, Pandas pracuje efektivněji, když jsou operace vektorizovány, na rozdíl od vybírání jednotlivých buněk nebo řádků pomocí smyček.

Vektorizace je forma paralelizace, kde je stejná operace aplikována na více datových bodů najednou. Toto je označováno jako SIMD – Single Instruction, Multiple Data. Využití vektorizovaných operací dramaticky zvýší rychlost a výkon Pand.

Protože pod kapotou používají pole NumPy, datové struktury DataFrame a Series jsou rychlejší než jejich alternativní slovníky a seznamy.

Výchozí implementace Pandas běží pouze na jednom jádru CPU. Dalším způsobem, jak urychlit svůj kód, je použití knihoven, které umožňují Pandám využít všechna dostupná jádra CPU. Patří mezi ně Dask, Vaex, Modin a IPython.

Komunita a zdroje

Pandas je oblíbenou knihovnou nejoblíbenějšího programovacího jazyka a má velkou komunitu uživatelů a přispěvatelů. V důsledku toho existuje mnoho zdrojů, které lze použít, abyste se naučili, jak jej používat. Patří mezi ně oficiální dokumentace Pandas. Existuje ale také nespočet kurzů, návodů a knih, ze kterých se můžete učit.

Existují také online komunity na platformách, jako je Reddit v subredditech r/Python a r/Data Science, kde můžete klást otázky a získávat odpovědi. Protože se jedná o knihovnu s otevřeným zdrojovým kódem, můžete nahlásit problémy na GitHubu a dokonce přispívat kódem.

Závěrečná slova

Pandas je neuvěřitelně užitečná a výkonná jako datová vědecká knihovna. V tomto článku jsem se pokusil vysvětlit jeho popularitu tím, že jsem prozkoumal funkce, které z něj dělají oblíbený nástroj pro datové vědce a programátory.

Dále se podívejte, jak vytvořit Pandas DataFrame.