- Što je Pandas paket
- Instalacija i početak rada
- Učitavanje podataka iz CSV-ova u Pandas DataFrame
- Što je DataFrame i kako to radi
- Rezanje okvira podataka
- Matematičke operacije nad DataFrame-om
Ovo izgleda puno za pokriti. Krenimo odmah.
Što je paket Python Pandas?
Prema početnoj stranici Pandas: pandas je biblioteka s otvorenim izvorom, BSD-licencirana, pruža podatkovne strukture visokih performansi, jednostavne za upotrebu i alate za analizu podataka za programski jezik Python.
Jedna od najzgodnijih stvari o Pandama je ta što čini čitanje podataka iz uobičajenih formata podataka kao što su CSV, SQL itd. vrlo jednostavno što ga čini jednako korisnim u proizvodnim aplikacijama ili samo u nekim demo programima.
Instalirajte Python Pande
Samo napomenu prije početka instalacijskog postupka, za ovu lekciju koristimo virtualno okruženje koje smo napravili sljedećom naredbom:
python -m virtualenv pandeizvorne pande / bin / aktiviraj
Jednom kada je virtualno okruženje aktivno, možemo instalirati biblioteku panda unutar virtualne env tako da se mogu izvršiti primjeri koje sljedeći kreiramo:
pip instalirati pandeIli možemo koristiti Conda za instalaciju ovog paketa pomoću sljedeće naredbe:
conda instalirati pandeOtprilike ovako vidimo kad izvršimo gornju naredbu:
Kada se instalacija završi s Condom, moći ćemo koristiti paket u našim Python skriptama kao:
uvoziti pande kao pdPočnimo sada koristiti Pande u našim skriptama.
Čitanje CSV datoteke s Pandas DataFrames
Čitanje CSV datoteke jednostavno je s Pandama. Za demonstraciju smo napravili malu CSV datoteku sa sljedećim sadržajem:
Ime, RollNo, Datum prijema, Kontakt za hitne slučajeveShubham, 1.20.5.2012.99988776655
Gagan, 02. 02. 2009. 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
Spremite ovu datoteku u isti direktorij kao i Python skripta. Nakon što je datoteka prisutna, dodajte sljedeći isječak koda u Python datoteku:
uvoziti pande kao pdstudenti = pd.read_csv ("studenti.csv ")
studenti.glava ()
Jednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
Funkcija head () u Pandama može se koristiti za prikaz uzorka podataka prisutnih u DataFrame-u. Čekaj, DataFrame? U sljedećem ćemo odjeljku proučiti mnogo više o DataFrameu, ali samo shvatiti da je DataFrame n-dimenzionalna struktura podataka koja se može koristiti za zadržavanje i analizu ili složene operacije nad nizom podataka.
Također možemo vidjeti koliko redaka i stupaca imaju trenutni podaci:
studenti.oblikJednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
Imajte na umu da Pande također broje broj redaka počevši od 0.
Na popisu s Pandama moguće je dobiti samo stupac. To se može učiniti pomoću indeksiranje u Pandama. Pogledajmo kratki isječak koda za isti:
student_names = students ['Ime']imena učenika
Jednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
Ali to ne izgleda kao popis, zar ne? Pa, moramo izričito pozvati funkciju za pretvaranje ovog objekta u popis:
studentska imena = studentska imena.izlistati()imena učenika
Jednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
Samo za dodatne informacije, možemo osigurati da je svaki element na popisu jedinstven i neprazne elemente biramo samo dodavanjem nekoliko jednostavnih provjera poput:
student_names = students ['Ime'].dropna ().jedinstveno ().izlistati()U našem slučaju, izlaz se neće promijeniti jer popis već ne sadrži nikakve pogrešne vrijednosti.
Također možemo napraviti DataFrame sa sirovim podacima i zajedno s njim proslijediti imena stupaca, kao što je prikazano u sljedećem isječku koda:
my_data = pd.DataFrame ([
[1, "Chan"],
[2, "Smith"],
[3, "Winslet"]
],
stupci = ["Poredak", "Prezime"]
)
my_data
Jednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
Rezanje okvira podataka
Razbijanje okvira podataka za izdvajanje samo odabranih redaka i stupaca važna je funkcionalnost za zadržavanje pozornosti prema potrebnim dijelovima podataka koje trebamo koristiti. Zbog toga nam Pandas omogućuje da izrežemo DataFrame po potrebi i s izjavama poput:
- iloc [: 4 ,:] - odabire prva 4 retka i sve stupce za te retke.
- iloc [:,:] - odabran je cijeli okvir podataka
- iloc [5:, 5:] - redovi od položaja 5 nadalje, i stupci od položaja 5 nadalje.
- iloc [:, 0] - prvi stupac i svi retci za stupac.
- iloc [9 ,:] - 10. redak i svi stupci za taj redak.
U prethodnom smo odjeljku već vidjeli indeksiranje i rezanje s imenima stupaca umjesto indeksa. Također je moguće kombiniranje rezanja s indeksnim brojevima i imenima stupaca. Pogledajmo jednostavan isječak koda:
studenti.loc [: 5, 'Ime']Jednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
Moguće je odrediti više stupaca:
studenti.loc [: 5, ['Ime', 'Kontakt za hitne slučajeve']]Jednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
Struktura podataka serije u Pandama
Baš kao i Pande (koja je višedimenzionalna struktura podataka), Serija je jednodimenzionalna struktura podataka u Pandama. Kada dohvatimo jedan stupac iz DataFrame-a, zapravo radimo sa serijom:
vrsta (studenti ["Ime"])Jednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
Možemo konstruirati i vlastitu seriju, evo isječka koda za istu:
serija = pd.Serija (['Shubham', 3.7])niz
Jednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
Kao što je jasno iz gornjeg primjera, serija također može sadržavati više vrsta podataka za isti stupac.
Logički filtri u Pandas DataFrameu
Jedna od dobrih stvari u Pandasu je kako izvući podatke iz DataFramea na temelju stanja. Poput vađenja učenika samo kada je broj role veći od 6:
roll_filter = students ['RollNo']> 6roll_filter
Jednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
Pa, to nismo očekivali. Iako je u izlazu prilično eksplicitno o tome koji su retci zadovoljili filtar koji smo dali, ali još uvijek nemamo točne retke koji su zadovoljili taj filtar. Ispada to filtere možemo koristiti kao indekse DataFrame također:
studenti [roll_filter]Jednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
Moguće je koristiti više uvjeta u filtru kako bi se podaci mogli filtrirati na jednom sažetom filtru, poput:
next_filter = (studenti ['RollNo']> 6) & (studenti ['Ime']> 'S')studenti [sljedeći_filter]
Jednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
Izračunavanje medijana
U DataFrameu možemo izračunati i mnoge matematičke funkcije. Dat ćemo dobar primjer izračunavanja medijana. Medijana će se izračunati za datum, a ne samo za brojeve. Pogledajmo kratki isječak koda za isti:
datumi = studenti ['Datum prijema'].astype ('datetime64 [ns]').kvantil (.5)datumi
Jednom kada pokrenemo gornji isječak koda, vidjet ćemo sljedeći izlaz:
To smo postigli tako što smo prvo indeksirali datumski stupac koji imamo, a zatim pružili vrstu podataka stupcu tako da ga Pandas može ispravno zaključiti kada primjenjuje funkciju kvantile za izračunavanje medijana datuma.
Zaključak
U ovoj smo lekciji pogledali razne aspekte Pandasove knjižnice za obradu koju možemo koristiti s Pythonom za prikupljanje podataka iz različitih izvora u DataFrame strukturu podataka koja nam omogućava sofisticirano djelovanje na skupu podataka. Također nam omogućuje da dobijemo podskup podataka na kojima želimo trenutno raditi i pruža mnoge matematičke operacije.
Molimo podijelite svoje povratne informacije o lekciji na Twitteru s @sbmaggarwal i @LinuxHint.