Andmeteadus

Pandase andmeraami õpetus

Pandase andmeraami õpetus

Pandad numbriliseks analüüsiks

Pandas töötati välja vajadusest tõhusate viiside järele finantsandmete haldamiseks Pythonis.  Pandas on raamatukogu, mida saab importida pythoni, et aidata arvandmetega manipuleerida ja teisendada. Wes McKinney alustas projekti 2008. aastal.  Pandasid haldab nüüd inseneride rühm ja seda toetab mittetulundusühing NUMFocus, mis kindlustab selle edasise kasvu ja arengu. See tähendab, et pandad on aastaid stabiilne raamatukogu ja neid saab teie rakendustesse lisada, ilma et peaksite muretsema väikese projekti pärast.

Kuigi pandad töötati algselt välja finantsandmete modelleerimiseks, saab nende andmestruktuure kasutada mitmesuguste arvandmete töötlemiseks.  Pandas on arvukalt sisseehitatud andmestruktuure, mida saab kasutada arvandmete hõlpsaks modelleerimiseks ja manipuleerimiseks. See õpetus hõlmab pandasid DataFrame andmete struktuur põhjalikult.

Mis on DataFrame?

A DataFrame on pandade üks peamisi andmestruktuure ja kujutab endast kahemõõtmelist andmekogumit.  Seda tüüpi kahemõõtmeliste andmestruktuuride jaoks on palju analoogseid objekte, millest mõned sisaldavad üha populaarsemat Exceli tabelit, andmebaasitabelit või 2-D massiivi, mida leidub enamikus programmeerimiskeeltes.  Allpool on toodud näide a DataFrame graafilises vormingus.  See tähistab aktsiate sulgemishindade aegridade gruppi kuupäeva järgi.

Selles õpetuses tutvustatakse paljusid andmeraami meetodeid ja nende funktsioonide demonstreerimiseks kasutan reaalmaailma finantsmudelit.

Andmete importimine

Pandaklassidel on mõned sisseehitatud meetodid, mis aitavad andmeid andmete struktuuri importida. Allpool on näide selle kohta, kuidas importida andmeid pandade paneelile DataReader klass.  Seda saab kasutada andmete importimiseks mitmetest tasuta finantsandmete allikatest, sealhulgas Quandl, Yahoo Finance ja Google. Panda raamatukogu kasutamiseks peate selle oma koodi lisama impordina.

impordi pandad kui pd

Allpool toodud meetod käivitab programmi, käivitades õpetuse käitamise meetodi.

kui __nimi__ == "__main__":
tutorial_run ()

The juhendaja_jooks meetod on allpool.  See on järgmine meetod, mille lisan koodi.  Selle meetodi esimene rida määratleb aktsiapakkumiste loendi.  Seda muutujat kasutatakse hiljem koodis varude loendina, mille andmete saamiseks on vaja andmeid DataFrame.  Teine koodirida kutsub saada_andmed meetod.  Nagu näeme, saada_andmed meetod võtab sisendiks kolm parameetrit. Edastame nõutavate andmete aktsiapakkumiste loendi, algus- ja lõppkuupäeva.

def tutorial_run ():
#Stock piletid Yahoo Finance'ilt
sümbolid = ['SPY', 'AAPL', 'GOOG']
#get andmed
df = get_data (sümbolid, '2006-01-03', '2017-12-31')

Allpool määratleme saada_andmed meetod.  Nagu ma eespool mainisin, on vaja kolme parameetrit sümbolite loetelu, algus- ja lõppkuupäev.

Koodide esimene rida määratleb pandade paneeli, muutes a DataReader klass.  Üleskutse DataReader klass loob ühenduse Yahoo Finance serveriga ja taotleb iga aktsia iga päev kõrgeimat, madalamat, lähedast ja kohandatud sulgemisväärtust sümbolid nimekirja.  Need andmed laadivad pandad paneeliobjekti.

A paneel on 3-D maatriks ja seda võib pidada "virnaks" DataFrames.  Iga DataFrame korstnas on üks soovitud aktsiate ja kuupäevavahemike päevaväärtustest.  Näiteks allpool DataFrame, varem esitatud, on sulgemishind DataFrame päringust.  Igal hinnaliigil (kõrge, madal, lähedane ja kohandatud lähedal) on oma DataFrame saadud paneelil päring.

Teine koodirida viilutab paneeli üheks DataFrame ja määrab saadud andmed df.  See on minu muutuja DataFrame mida kasutan ülejäänud õpetuse jaoks.  See hoiab kolme aktsia igapäevaseid lähedasi väärtusi määratud kuupäevavahemikus.  Paneel on viilutatud, määrates paneeli DataFrames soovite tagasi tulla.  Selles allolevas koodireas on see 'Sule'.

Kui meil on oma DataFrame paigas käsitlen pandade raamatukogu mõningaid kasulikke funktsioone, mis võimaldavad meil käsiraamatu andmetega manipuleerida DataFrame objekt.

def get_data (sümbolid, alguskuupäev, lõppkuupäev):
paneel = andmed.DataReader (sümbolid, 'yahoo', alguskuupäev, lõppkuupäev)
df = paneel ['Sule']
print (df.pea (5))
print (df.saba (5))
tagasi df

Pead ja sabad

Kolmas ja neljas rida saada_andmed printige andmeraami funktsioonipea ja saba.  Minu arvates on see kõige kasulikum andmete silumisel ja visualiseerimisel, kuid seda saab kasutada ka andmete esimese või viimase valimi valimiseks DataFrame.  Pea ja saba funktsioon tõmbab esimese ja viimase andmerea DataFrame.  Sulgude vaheline täisarvuparameeter määrab meetodi abil valitud ridade arvu.

 .loc

The DataFrame loc meetod viilutab DataFrame indeksi järgi.  Allpool olev koodirida viilutab df DataFrame indeksi järgi 2017-12-12.  Esitasin allpool ekraanipildi tulemustest.

print df.loc ["12.12.2017"]

loc saab kasutada ka kahemõõtmelise viiluna. Esimene parameeter on rida ja teine ​​parameeter on veerg.  Allolev kood tagastab ühe väärtuse, mis võrdub 12.12.2014 Apple'i sulgemishinnaga.

print df.loc ["2017-12-12", "AAPL"]

The loc meetodit saab kasutada kõigi veeru ridade või rea kõigi veergude viilutamiseks. The : operaatorit kasutatakse kõigi tähistamiseks.  Allpool olev koodirida valib kõik veeru read Google'i sulgemishindade jaoks.

print df.loc [:, "GOOG"]

.fillna

Eriti finantsandmekogumites on tavaline, et teie NaN-väärtused on olemas DataFrame.  Pandas pakub funktsiooni nende väärtuste täitmiseks arvväärtusega.  See on kasulik, kui soovite andmetele mingisuguseid arvutusi teha, mis võivad NaN-i väärtuste tõttu olla viltu või ebaõnnestuda.

The .fillna meetod asendab määratud väärtuse iga teie andmekogumi NaN-väärtuse jaoks.  Allpool olev koodirida täidab kogu meie NaN-i DataFrame 0-ga.  Seda vaikeväärtust saab muuta väärtusele, mis vastab töötava andmekogumi vajadustele, värskendades meetodile edastatud parameetrit.

df.fillna (0)

Andmete normaliseerimine

Masinõppe või finantsanalüüsi algoritmide kasutamisel on sageli kasulik oma väärtusi normaliseerida.  Allpool toodud meetod on pandade andmete normaliseerimise tõhus arvutus DataFrame.  Soovitan teil seda meetodit kasutada, kuna see kood töötab normeerimiseks tõhusamalt kui muud meetodid ja võib suurte andmekogumite korral suurt jõudlust tõsta.

.iloc on meetodiga sarnane .loc kuid võtab asukohapõhised parameetrid, mitte sildipõhised parameetrid.  See võtab null-põhise indeksi, mitte veeru nime .loc näide.  Allpool toodud normaliseerimiskood on näide mõnest võimsast maatriksarvutusest, mida saab teha.  Jätan lineaaralgebra õppetunni vahele, kuid sisuliselt jagab see koodirida kogu maatriksi või DataFrame iga aegrida esimese väärtuse järgi.   Sõltuvalt teie andmekogumist võite soovida normi, mis põhineb min, max või keskmisel.  Neid norme saab hõlpsalt arvutada ka allpool oleva maatriksipõhise stiili abil.

def normalize_data (df):
tagastage df / df.iloc [0 ,:]

Andmete joonistamine

Andmetega töötades on sageli vaja neid graafiliselt kujutada.  Graafiku meetod võimaldab teil hõlpsalt oma andmekogumitest graafiku koostada.

Allpool toodud meetod võtab meie DataFrame ja joonistab selle tavalisele joongraafikule.  Meetod võtab a DataFrame ja selle parameetriteks pealkiri.  Koodikomplektide esimene rida kirves krundile DataFrame df.  See määrab teksti pealkirja ja fondi suuruse.  Järgmised kaks rida määravad x- ja y-telje sildid.  Viimane koodirida kutsub näitamismeetodit, mis prindib graafiku konsooli. Olen esitanud ekraanipildi alloleva süžee tulemustest.  See tähistab iga aktsia normaliseeritud sulgemishinda valitud ajaperioodil.

def plot_data (df, pealkiri = "Aktsiate hinnad"):
kirves = df.joonis (pealkiri = pealkiri, fontsize = 2)
kirves.set_xlabel ("Kuupäev")
kirves.set_ylabel ("Hind")
süžee.näita ()

Pandas on tugev andmetega manipuleerimise teek. Seda saab kasutada erinevat tüüpi andmete jaoks ja see pakub ülevaatlikku ja tõhusat meetodite kogumit teie andmekogumiga manipuleerimiseks. Allpool olen esitanud juhendaja täieliku koodi, et saaksite selle oma vajadustele vastavaks üle vaadata ja muuta. On veel mõned meetodid, mis aitavad teil andmetega manipuleerida, ja soovitan teil üle vaadata pandasokumendid, mis on postitatud allpool asuvatele viidetele. NumPy ja MatPlotLib on veel kaks teeki, mis töötavad hästi andmeteaduse jaoks ja mida saab kasutada pandade raamatukogu võimsuse parandamiseks.

Täielik kood

impordi pandad kui pd
def plot_selected (df, column, start_index, end_index):
plot_data (df.ix [start_index: end_index, veerud])
def get_data (sümbolid, alguskuupäev, lõppkuupäev):
paneel = andmed.DataReader (sümbolid, 'yahoo', alguskuupäev, lõppkuupäev)
df = paneel ['Sule']
print (df.pea (5))
print (df.saba (5))
print df.loc ["12.12.2017"]
print df.loc ["2017-12-12", "AAPL"]
print df.loc [:, "GOOG"]
df.fillna (0)
tagasi df
def normalize_data (df):
tagastage df / df.ix [0 ,:]
def plot_data (df, pealkiri = "Aktsiate hinnad"):
kirves = df.joonis (pealkiri = pealkiri, fontsize = 2)
kirves.set_xlabel ("Kuupäev")
kirves.set_ylabel ("Hind")
süžee.näita ()
def tutorial_run ():
#Valige sümbolid
sümbolid = ['SPY', 'AAPL', 'GOOG']
#get andmed
df = get_data (sümbolid, '2006-01-03', '2017-12-31')
plot_data (df)
kui __nimi__ == "__main__":
tutorial_run ()

Viited

Pandade avaleht
Pandase Vikipeedia leht
https: // et.vikipeedia.org / wiki / Wes_McKinney
NumFocuse avaleht

WinMouse võimaldab teil kohandada ja parandada hiirekursori liikumist Windowsi arvutis
Kui soovite oma hiirekursori vaikefunktsioone paremaks muuta, kasutage vabavara WinMouse. See lisab rohkem funktsioone, mis aitavad teil alandlikust h...
Hiire vasakklõps nupp ei tööta Windows 10-s
Kui kasutate oma sülearvuti või lauaarvutiga spetsiaalset hiirt, kuid hiire vasakklõps nupp ei tööta mingil põhjusel operatsioonisüsteemis Windows 10/...
Kursor hüppab või liigub juhuslikult Windows 10-s kirjutamise ajal
Kui leiate, et hiire kursor hüppab või liigub Windowsi sülearvutisse või arvutisse kirjutades automaatselt, juhuslikult, võivad mõned neist soovituste...