pandad

Pandase õpetus Pythonis

Pandase õpetus Pythonis
Selles Python Pandase teegi õppetükis vaatleme erinevaid andmestruktuure, mida see Pythoni pakett pakub kiireteks andmetöötlusfunktsioonideks, mis on tõhusad dünaamiliste andmete jaoks ja keerukate toimingute haldamiseks mitmemõõtmeliste andmete korral. Selles õppetükis käsitleme peamiselt:

See näeb välja palju, mida katta. Alustame kohe.

Mis on Python Pandase pakett?

Pandase kodulehe andmetel: pandas on avatud lähtekoodiga, BSD-litsentsiga raamatukogu, mis pakub Pythoni programmeerimiskeele jaoks suure jõudlusega ja hõlpsasti kasutatavaid andmestruktuure ja andmeanalüüsi tööriistu.

Pandade üks lahedamaid asju on see, et see võimaldab andmeid lugeda tavalistest andmevormingutest nagu CSV, SQL jne. väga lihtne, mis muudab selle võrdselt kasutatavaks tootmistaseme rakendustes või lihtsalt mõnes demorakenduses.

Installige Python Pandas

Enne installiprotsessi alustamist kasutame vaid märkust selle õppetunni jaoks virtuaalse keskkonna, mille tegime järgmise käsuga:

python -m virtualenv pandad
allikas pandad / bin / aktiveeri

Kui virtuaalne keskkond on aktiivne, saame virtuaalsesse keskkonda installida pandade kogu, et järgmisena loodud näited saaksid täidetud:

pip paigaldada pandad

Või võime kasutada Condat selle paketi installimiseks järgmise käsuga:

konda paigaldada pandad

Ülaloleva käsu täitmisel näeme midagi sellist:

Kui installimine on Condaga lõpule jõudnud, saame oma Pythoni skriptides paketti kasutada järgmiselt:

impordi pandad kui pd

Alustame Pandade kasutamist nüüd oma skriptides.

CSV-faili lugemine rakendusega Pandas DataFrames

CSV-faili lugemine on pandade abil lihtne. Demonstratsiooniks oleme loonud järgmise sisuga väikese CSV-faili:

Nimi, loetelu nr, vastuvõtu kuupäev, hädaolukorra 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

Salvestage see fail Pythoni skripti samasse kataloogi. Kui fail on olemas, lisage Pythoni faili järgmine koodilõik:

impordi pandad kui pd
õpilased = pd.read_csv ("õpilased.csv ")
õpilased.pea ()

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Funktsiooni Pands (head) saab kasutada DataFrame'is olevate andmete valimi kuvamiseks. Oota, DataFrame? Uurime järgmises jaotises palju rohkem DataFrame'i kohta, kuid mõistame lihtsalt, et DataFrame on n-mõõtmeline andmestruktuur, mida saab kasutada andmehulga jaoks keerukate toimingute hoidmiseks ja analüüsimiseks.

Samuti näeme, mitu rida ja veergu praegustel andmetel on:

õpilased.kuju

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Pange tähele, et Pandas loeb ka ridade arvu alates 0-st.

Pandadega on võimalik saada lihtsalt veerg loendist. Seda saab teha abiga indekseerimine Pandas. Vaatame sama lühikest koodilõiku:

student_names = õpilased ['nimi']
õpilase_nimed

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Kuid see ei tundu nagu nimekiri, eks? Noh, selle objekti loendiks teisendamiseks peame selgesõnaliselt kutsuma funktsiooni:

õpilase_nimed = õpilase_nimed.loetlema()
õpilase_nimed

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Lihtsalt lisateabe saamiseks võime veenduda, et loendi kõik elemendid on ainulaadsed ja valime tühjad elemendid, lisades mõned lihtsad kontrollid, näiteks:

student_names = õpilased ['nimi'].dropna ().ainulaadne ().loetlema()

Meie puhul väljund ei muutu, kuna loend ei sisalda juba ühtegi ebameeldivat väärtust.

Samuti võime teha algandmetega DataFrame'i ja edastada koos veergude nimed, nagu on näidatud järgmises koodilõigus:

minu_andmed = pd.DataFrame (
[
[1, "Chan"],
[2, "Smith"],
[3, "Winslet"]
],
veerud = ["auaste", "perekonnanimi"]
)
minu_andmed

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

DataFrame'i viilutamine

DataFrame'i jaotamine ainult valitud ridade ja veergude väljavõtmiseks on oluline funktsioon, et hoida tähelepanu vajalike andmete osade suhtes, mida peame kasutama. Selleks võimaldab Pandas meil viilida DataFrame'i vastavalt vajadusele selliste lausetega:

Eelmises jaotises oleme juba näinud indekseerimist ja viilimist indeksite asemel veerunimedega. Samuti on võimalik viilutamine segada indeksnumbrite ja veergude nimedega. Vaatame lihtsat koodijuppi:

õpilased.loc [: 5, 'nimi']

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Võimalik on määrata mitu veergu:

õpilased.loc [: 5, ['nimi', 'hädaabikontakt']]

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Seeria andmekonstruktsioon pandades

Nii nagu Pandas (mis on mitmemõõtmeline andmestruktuur), on seeria Pandades ühemõõtmeline andmestruktuur. DataFrame'ist ühe veeru hankimisel töötame tegelikult seeriaga:

tüüp (õpilased ["nimi"])

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Saame konstrueerida ka oma seeria, siin on sama koodilõik:

seeria = pd.Seeria (['Shubham', 3.7])
seeria

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Nagu ülaltoodud näitest selge, võib seeria sisaldada mitut andmetüüpi ka sama veeru jaoks.

Boole'i ​​filtrid rakenduses Pandas DataFrame

Pandase üks hea asi on see, kuidas on tingimuse põhjal andmete eraldamine DataFrame'ist. Nagu õpilaste väljavõtmine ainult siis, kui nimekirjade arv on suurem kui 6:

roll_filter = õpilased ['RollNo']> 6
rull_filter

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Noh, seda me ei oodanud. Kuigi väljund on üsna selgesõnaline selle kohta, millised read vastasid meie pakutavale filtrile, kuid meil pole siiski täpseid ridu, mis selle filtri rahuldaks. Selgub, et saame kasutada filtreid DataFrame'i indeksitena samuti:

õpilased [roll_filter]

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Filtris on võimalik kasutada mitut tingimust, et andmeid saaks filtreerida ühele lühikesele filtrile, näiteks:

järgmine_filter = (õpilased ['RollNo']> 6) ja (õpilased ['Nimi']> 'S')
õpilased [järgmine_filter]

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Mediaani arvutamine

DataFrame'is saame arvutada ka palju matemaatilisi funktsioone. Toome mediaani arvutamise hea näite. Mediaan arvutatakse kuupäeva, mitte ainult arvude jaoks. Vaatame sama lühikest koodilõiku:

kuupäevad = üliõpilased ['vastuvõtu kuupäev'].astype ('datetime64 [ns]').kvantiil (.5)
kuupäevad

Kui ülaltoodud koodilõik on käivitatud, näeme järgmist väljundit:

Selle saavutasime kõigepealt olemasoleva kuupäevaveeru indekseerimise ja seejärel veerule andmetüübi andmise, et Pandas saaks selle õigesti järeldada, kui rakendab kvantfunktsiooni mediaani.

Järeldus

Selles tunnis vaatasime Pandade töötlemisraamatukogu erinevaid aspekte, mida saame Pythoniga kasutada andmete kogumiseks erinevatest allikatest andmestruktuuri DataFrame, mis võimaldab meil andmekogumit keerukalt kasutada. See võimaldab meil saada ka alamhulka andmeid, millega soovime hetkega töötada, ja pakub palju matemaatilisi toiminguid.

Palun jagage oma tagasisidet õppetunni kohta Twitteris @sbmaggarwal ja @LinuxHint.

Viis parimat mängu püüdmise kaarti
Me kõik oleme YouTube'is voogesituse mänge näinud ja armastanud. PewDiePie, Jakesepticye ja Markiplier on vaid mõned tipptasemel mängijatest, kes on t...
Kuidas mängu Linuxis arendada
Kümme aastat tagasi ei osanud paljud Linuxi kasutajad ennustada, et nende lemmikoperatsioonisüsteem on ühel päeval populaarne kommertsvideomängude män...
Kommertsmängumootorite avatud lähtekoodiga sadamad
Tasuta, avatud lähtekoodiga ja platvormidevaheliste mängumootorite puhkusereise saab kasutada nii vanade kui ka mõnede üsna hiljutiste mängude pealkir...