pandy

Výukový program pro Pandy v Pythonu

Výukový program pro Pandy v Pythonu
V této lekci o knihovně Python Pandas se podíváme na různé datové struktury, které tento balíček Pythonu poskytuje pro funkce rychlého zpracování dat, které jsou účinné pro dynamická data a správu složitých operací nad vícerozměrnými daty. V této lekci se budeme věnovat hlavně:

Vypadá to, že je toho hodně k pokrytí. Pojďme začít hned.

Co je balíček Python Pandas?

Podle domovské stránky Pandas: pandas je open source knihovna s licencí BSD poskytující vysoce výkonné a snadno použitelné datové struktury a nástroje pro analýzu dat pro programovací jazyk Python.

Jednou z nejlepších věcí na Pandas je to, že umožňuje čtení dat z běžných datových formátů, jako je CSV, SQL atd. velmi snadné, díky čemuž je stejně použitelné v produkčních aplikacích nebo jen v některých ukázkových aplikacích.

Nainstalujte Python Pandas

Jen poznámka před zahájením procesu instalace, pro tuto lekci používáme virtuální prostředí, které jsme vytvořili pomocí následujícího příkazu:

python -m virtualenv pandy
zdrojové pandy / bin / aktivovat

Jakmile je virtuální prostředí aktivní, můžeme do virtuální env nainstalovat knihovnu pand, aby bylo možné provést příklady, které vytvoříme dále:

pip nainstalujte pandy

Nebo můžeme použít Conda k instalaci tohoto balíčku pomocí následujícího příkazu:

Conda nainstalovat pandy

Vidíme něco takového, když provedeme výše uvedený příkaz:

Jakmile se instalace dokončí pomocí Condy, budeme moci balíček použít v našich skriptech Pythonu jako:

importovat pandy jako pd

Začněme nyní ve svých skriptech používat Pandy.

Čtení souboru CSV pomocí Pandas DataFrames

Čtení souboru CSV je s Pandas snadné. Pro demonstraci jsme zkonstruovali malý soubor CSV s následujícím obsahem:

Jméno, RollNo, datum přijetí, nouzový kontakt
Shubham, 1,20-05-2012,9988776655
Gagan, 2.20-05-2009, 8364517829
Oshima, 3,20-05-2003,5454223344
Vyom, 4,20-05-2009, 1223344556
Ankur, 5,20-05-1999,9988776655
Vinod, 6,20-05-1999,9988776655
Vipin, 7,20-05-2002,9988776655
Ronak, 8,20-05-2007, 1223344556
DJ, 9,20-05-2014,9988776655
VJ, 10,20-05-2015,9988776655

Uložte tento soubor do stejného adresáře jako skript Pythonu. Jakmile je soubor k dispozici, přidejte následující fragment kódu do souboru Pythonu:

importovat pandy jako pd
studenti = pd.read_csv ("studenti.csv ")
studenti.hlava()

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

Funkce head () v Pandas lze použít k zobrazení vzorku dat přítomných v DataFrame. Počkejte, DataFrame? Budeme studovat mnohem více o DataFrame v další části, ale jen pochopíme, že DataFrame je n-dimenzionální datová struktura, kterou lze použít k uchovávání a analýze nebo komplexních operací nad sadou dat.

Můžeme také vidět, kolik řádků a sloupců mají aktuální data:

studenti.tvar

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

Pandy také počítají počet řádků od 0.

Je možné získat pouze sloupec v seznamu s Pandas. Toho lze dosáhnout pomocí indexování v Pandách. Podívejme se na krátký fragment kódu:

student_names = students ['Name']
student_names

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

Ale to nevypadá jako seznam, že?? Musíme explicitně zavolat funkci pro převod tohoto objektu na seznam:

student_names = student_names.seznam ()
student_names

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

Jen pro další informace se můžeme ujistit, že každý prvek v seznamu je jedinečný a nevyprázdněné prvky vybereme pouze přidáním několika jednoduchých kontrol jako:

student_names = students ['Name'].dropna ().unikátní().seznam ()

V našem případě se výstup nezmění, protože seznam již neobsahuje žádné chybné hodnoty.

Můžeme také vytvořit DataFrame se surovými daty a předat spolu s nimi názvy sloupců, jak je znázorněno v následujícím fragmentu kódu:

my_data = pd.DataFrame (
[
[1, „Chan“],
[2, „Smith“],
[3, „Winslet“]
],
sloupce = ["Hodnocení", "Příjmení"]
)
moje_data

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

Krájení datových rámců

Rozdělení datových rámců pro extrakci pouze vybraných řádků a sloupců je důležitá funkce pro udržení pozornosti směrem k požadovaným částem dat, která potřebujeme použít. Za tímto účelem nám Pandas umožňuje rozdělit DataFrame podle potřeby pomocí příkazů jako:

V předchozí části jsme již viděli indexování a krájení s názvy sloupců místo indexů. Je také možné kombinovat řezy s čísly indexů a názvy sloupců. Podívejme se na jednoduchý fragment kódu:

studenti.loc [: 5, 'Jméno']

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

Je možné zadat více než jeden sloupec:

studenti.loc [: 5, ['Jméno', 'Tísňový kontakt']]]

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

Sériová datová struktura v pandách

Stejně jako Pandas (což je vícerozměrná datová struktura), je Series jednorozměrná datová struktura v Pandas. Když načteme jeden sloupec z DataFrame, ve skutečnosti pracujeme s Series: When we retrieve a single column from a DataFrame, we we actually working with a Series:

typ (studenti ["jméno"])

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

Můžeme také postavit vlastní sérii, zde je fragment kódu pro stejné:

série = pd.Seriál (['Shubham', 3.7])
série

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

Jak je zřejmé z výše uvedeného příkladu, Series může obsahovat také více datových typů pro stejný sloupec.

Booleovské filtry v Pandas DataFrame

Jednou z dobrých věcí v Pandas je, jak je možné extrahovat data z DataFrame na základě podmínky. Stejně jako extrahování studentů pouze v případě, že počet rolí je větší než 6:

roll_filter = students ['RollNo']> 6
roll_filter

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

To není to, co jsme očekávali. I když je výstup zcela explicitní o tom, které řádky uspokojily filtr, který jsme poskytli, ale stále nemáme přesné řádky, které tento filtr uspokojily. Ukázalo se, že můžeme použít filtry jako indexy DataFrame také:

studenti [roll_filter]

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

Ve filtru je možné použít více podmínek, aby bylo možné data filtrovat na jeden výstižný filtr, například:

next_filter = (studenti ['RollNo']> 6) & (studenti ['Name']> 'S')
studenti [next_filter]

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

Výpočet mediánu

V DataFrame můžeme vypočítat také mnoho matematických funkcí. Uvedeme dobrý příklad výpočtu mediánu. Medián se vypočítá pro datum, nikoli pouze pro čísla. Podívejme se na krátký fragment kódu:

data = studenti ['datum přijetí'].astype ('datetime64 [ns]').kvantil (.5)
Termíny

Jakmile spustíme výše uvedený fragment kódu, uvidíme následující výstup:

Dosáhli jsme toho nejprve indexováním sloupce data, který máme, a poté poskytnutím datového typu sloupci, aby jej Pandas mohl správně odvodit, když použije kvantilovou funkci k výpočtu mediánu data.

Závěr

V této lekci jsme se podívali na různé aspekty knihovny zpracování Pandas, které můžeme pomocí Pythonu použít ke shromažďování dat z různých zdrojů do datové struktury DataFrame, která nám umožňuje sofistikovaně pracovat s datovou sadou. Umožňuje nám také získat podmnožinu dat, na kterých chceme momentálně pracovat, a poskytuje mnoho matematických operací.

Sdělte nám svůj názor na lekci na Twitteru s @sbmaggarwal a @LinuxHint.

Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
The Battle for Wesnoth je jednou z nejpopulárnějších strategických her s otevřeným zdrojovým kódem, které si v tuto chvíli můžete zahrát. Tato hra se ...
Hry 0 A.D. Tutorial
0 A.D. Tutorial
Z mnoha strategických her venku je 0 A.D. dokáže vyniknout jako komplexní titul a velmi hluboká, taktická hra, přestože je otevřeným zdrojem. Vývoj hr...
Hry Výukový program Unity3D
Výukový program Unity3D
Úvod do Unity 3D Unity 3D je výkonný engine pro vývoj her. Jedná se o multiplatformní platformu, která vám umožňuje vytvářet hry pro mobilní zařízení,...