pandy

Výukový program pre Pandy v jazyku Python

Výukový program pre Pandy v jazyku Python
V tejto lekcii o knižnici Python Pandas sa pozrieme na rôzne dátové štruktúry, ktoré tento balík Python poskytuje pre funkcie rýchleho spracovania údajov, ktoré sú účinné pre dynamické údaje a správu zložitých operácií s viacrozmernými údajmi. V tejto lekcii sa budeme hlavne venovať:

Vyzerá to, že treba veľa pokryť. Začnime teraz.

Čo je balíček Python Pandas?

Podľa domovskej stránky Pandas: pandas je open source knižnica s licenciou BSD poskytujúca vysoko výkonné a ľahko použiteľné dátové štruktúry a nástroje na analýzu údajov pre programovací jazyk Python.

Jednou z najlepších vecí na Pandas je to, že umožňuje čítanie údajov z bežných dátových formátov, ako sú CSV, SQL atď. veľmi jednoduché, vďaka čomu je rovnako použiteľný v produkčných aplikáciách alebo len v niektorých ukážkových aplikáciách.

Nainštalujte si Python Pandas

Len na úvod pred začatím procesu inštalácie používame pre túto lekciu virtuálne prostredie, ktoré sme vytvorili pomocou nasledujúceho príkazu:

python -m virtualenv pandy
zdrojové pandy / bin / aktivovať

Keď je virtuálne prostredie aktívne, môžeme si do virtuálneho env nainštalovať knižnicu pandas, aby bolo možné vykonať príklady, ktoré vytvoríme ďalej:

pip nainštaluj pandy

Alebo môžeme použiť Condu na inštaláciu tohto balíka pomocou nasledujúceho príkazu:

conda nainštalovať pandy

Vidíme niečo také, keď vykonáme vyššie uvedený príkaz:

Po dokončení inštalácie pomocou Condy budeme môcť balíček používať v našich skriptoch Pythonu ako:

importovať pandy ako pd

Začnime teraz v našich skriptoch používať Pandy.

Čítanie súboru CSV pomocou Pandas DataFrames

Čítanie súboru CSV je s Pandas ľahké. Na demonštráciu sme zostrojili malý súbor CSV s nasledujúcim obsahom:

Meno, RollNo, Dátum prijatia, Núdzový 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 súbor do rovnakého adresára ako skript Python. Keď je súbor k dispozícii, pridajte do súboru Python nasledujúci útržok kódu:

importovať pandy ako pd
študenti = pd.read_csv ("študenti.csv ")
študentov.hlava ()

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

Funkciu head () v Pandas je možné použiť na zobrazenie vzorky údajov prítomných v DataFrame. Počkajte, DataFrame? Budeme študovať oveľa viac informácií o DataFrame v nasledujúcej časti, ale stačí pochopiť, že DataFrame je n-dimenzionálna dátová štruktúra, ktorú je možné použiť na uchovávanie a analýzu alebo zložité operácie nad množinou údajov.

Vidíme tiež, koľko riadkov a stĺpcov obsahujú súčasné údaje:

študentov.tvar

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

Pamätajte, že Pandy počítajú aj počet riadkov začínajúcich od 0.

Je možné získať iba stĺpec v zozname s Pandami. To je možné vykonať pomocou indexovanie v Pandách. Pozrime sa na krátky úryvok kódu pre to isté:

student_names = students ['Name']
študentské_mená

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

Ale to nevyzerá ako zoznam, však?? Musíme explicitne zavolať funkciu na prevedenie tohto objektu do zoznamu:

student_names = student_names.listovať()
študentské_mená

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

Len pre ďalšie informácie sa môžeme ubezpečiť, že každý prvok v zozname je jedinečný. Neprázdne prvky vyberáme iba pridaním niekoľkých jednoduchých kontrol, ako napríklad:

student_names = students ['Name'].dropna ().jedinečný ().listovať()

V našom prípade sa výstup nezmení, pretože zoznam už neobsahuje žiadne chybné hodnoty.

Môžeme tiež vytvoriť údajový rámec so surovými údajmi a spolu s ním odovzdať názvy stĺpcov, ako je to znázornené v nasledujúcom útržku kódu:

my_data = pd.DataFrame (
[
[1, „Chan“],
[2, „Smith“],
[3, „Winslet“]
],
stĺpce = ["Poradie", "Priezvisko"]
)
my_data

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

Krájanie údajových rámcov

Rozdelenie údajových rámcov na extrakciu iba vybraných riadkov a stĺpcov je dôležitou funkciou na udržanie pozornosti voči požadovaným častiam údajov, ktoré musíme použiť. Za týmto účelom nám Pandas umožňuje, aby sme podľa potreby rozdelili DataFrame príkazmi ako:

V predchádzajúcej časti sme už videli indexy a segmenty s názvami stĺpcov namiesto indexov. Je tiež možné kombinovať krájanie s indexovými číslami a názvami stĺpcov. Pozrime sa na jednoduchý útržok kódu:

študentov.loc [: 5, 'Meno']

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

Je možné určiť viac ako jeden stĺpec:

študentov.loc [: 5, ['Meno', 'Núdzový kontakt']]]

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

Sériová dátová štruktúra v pandách

Rovnako ako Pandas (čo je viacrozmerná dátová štruktúra), aj Séria je jednorozmerná dátová štruktúra v Pandas. Keď načítame jeden stĺpec z údajového rámca, skutočne pracujeme so sériou:

typ (študenti ["meno"])

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

Môžeme zostaviť aj našu vlastnú sériu, tu je úryvok kódu pre to isté:

séria = pd.Edície (['Shubham', 3.7]))
série

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

Ako je zrejmé z vyššie uvedeného príkladu, séria môže obsahovať aj viac dátových typov pre ten istý stĺpec.

Boolovské filtre v Pandas DataFrame

Jednou z dobrých vecí v aplikácii Pandas je to, ako je možné extrahovať údaje z DataFrame na základe podmienky. Rovnako ako pri extrahovaní študentov, iba ak je počet ich úloh väčší ako 6:

roll_filter = students ['RollNo']> 6
roll_filter

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

No to nie je to, čo sme očakávali. Aj keď je výstup dosť explicitný o tom, ktoré riadky uspokojili filter, ktorý sme poskytli, stále nemáme presné riadky, ktoré tento filter uspokojili. Ukazuje sa to môžeme použiť filtre ako indexy DataFrame tiež:

študenti [roll_filter]

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

Vo filtri je možné použiť viac podmienok, aby bolo možné filtrovať údaje pomocou jedného stručného filtra, napríklad:

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

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

Výpočet mediánu

V dátovom rámci môžeme tiež vypočítať veľa matematických funkcií. Uvedieme dobrý príklad výpočtu mediánu. Medián sa bude počítať pre dátum, nielen pre čísla. Pozrime sa na krátky úryvok kódu pre to isté:

dátumy = študenti ['dátum prijatia'].astype ('datetime64 [ns]').kvantil (.5)
termíny

Po spustení vyššie uvedeného útržku kódu sa nám zobrazí nasledujúci výstup:

Dosiahli sme to tak, že sme najskôr indexovali stĺpec s dátumom, ktorý máme, a potom do stĺpca poskytli dátový typ, aby ho Pandas mohol správne odvodiť, keď použije kvantilovú funkciu na výpočet mediánu dátumu.

Záver

V tejto lekcii sme sa pozreli na rôzne aspekty spracovateľskej knižnice Pandas, ktoré môžeme s Pythonom používať na zhromažďovanie údajov z rôznych zdrojov do dátovej štruktúry DataFrame, ktorá nám umožňuje sofistikované fungovanie na množine údajov. Umožňuje nám tiež získať podmnožinu údajov, na ktorých chceme momentálne pracovať, a poskytuje mnoho matematických operácií.

Podeľte sa o svoju spätnú väzbu k lekcii na Twitteri s @sbmaggarwal a @LinuxHint.

Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
Battle for Wesnoth je jednou z najpopulárnejších open source strategických hier, ktoré si v súčasnosti môžete zahrať. Táto hra bola nielen vyvinutá ve...
Hry 0 A.D. Výukový program
0 A.D. Výukový program
Z mnohých strategických hier je tu 0 A.D. dokáže vyniknúť ako komplexný titul a veľmi hlboká, taktická hra napriek tomu, že je otvoreným zdrojom. Vývo...
Hry Výukový program pre Unity3D
Výukový program pre Unity3D
Úvod do Unity 3D Unity 3D je výkonný nástroj na vývoj hier. Je to multiplatforma, ktorá vám umožňuje vytvárať hry pre mobilné telefóny, web, počítače ...