Datu zinātne

Pandas datu rāmja apmācība

Pandas datu rāmja apmācība

Pandas skaitliskai analīzei

Pandas tika izstrādātas, jo bija nepieciešams efektīvs finanšu datu pārvaldīšanas veids Python.  Pandas ir bibliotēka, kuru var importēt pitonā, lai palīdzētu manipulēt un pārveidot skaitliskos datus. Vess Makkinijs projektu sāka 2008. gadā.  Pandas tagad vada inženieru grupa, un to atbalsta bezpeļņas organizācija NUMFocus, kas nodrošinās tās turpmāko izaugsmi un attīstību. Tas nozīmē, ka pandas būs stabila bibliotēka daudzus gadus un tās var iekļaut jūsu lietojumprogrammās, neuztraucoties par nelielu projektu.

Lai gan pandas sākotnēji tika izstrādātas, lai modelētu finanšu datus, to datu struktūras var izmantot, lai manipulētu ar dažādiem skaitliskiem datiem.  Pandas ir vairākas iebūvētas datu struktūras, kuras var izmantot, lai viegli modelētu un manipulētu ar skaitliskiem datiem. Šajā apmācībā tiks apskatītas pandas DataFrame datu struktūra.

Kas ir DataFrame?

A DataFrame ir viena no pandu primārajām datu struktūrām un apzīmē datu divkāršu apkopojumu.  Šim 2-D datu struktūras tipam ir daudz analogu objektu, no kuriem daži ietver arvien populāro Excel izklājlapu, datu bāzes tabulu vai 2-D masīvu, kas atrodams lielākajā daļā programmēšanas valodu.  Zemāk ir a DataFrame grafiskā formātā.  Tas atspoguļo akciju slēgšanas cenu laika rindu grupu pēc datuma.

Šī apmācība iepazīstinās jūs ar daudzām datu ietvara metodēm, un es šo funkciju parādīšanai izmantošu reālās pasaules finanšu modeli.

Datu importēšana

Pandas klasēs ir dažas iebūvētas metodes, kas palīdz importēt datus datu struktūrā. Tālāk ir sniegts piemērs, kā importēt datus pandu panelī, izmantojot DataReader klasē.  To var izmantot, lai importētu datus no vairākiem bezmaksas finanšu datu avotiem, tostarp Quandl, Yahoo Finance un Google. Lai izmantotu pandas bibliotēku, tā kodā jāpievieno kā imports.

importa pandas kā pd

Ar šo metodi programma tiks palaista, palaižot apmācības palaišanas metodi.

ja __nosaukums == "__main__":
tutorial_run ()

The tutorial_run metode ir zemāk.  Tā ir nākamā metode, kuru es pievienošu kodam.  Šīs metodes pirmajā rindā ir noteikts akciju marķieru saraksts.  Šis mainīgais vēlāk tiks izmantots kodā kā krājumu saraksts, par kuriem tiks pieprasīti dati, lai aizpildītu DataFrame.  Otra koda rinda izsauc get_data metodi.  Kā mēs redzēsim, get_data metode izmanto trīs parametrus. Mēs nodosim pieprasīto datu akciju sarakstu, sākuma un beigu datumu.

def tutorial_run ():
#Stock Biļetes avotam no Yahoo Finance
simboli = ['SPY', 'AAPL', 'GOOG']
#get dati
df = get_data (simboli, '2006-01-03', '2017-12-31')

Zemāk mēs definēsim get_data metodi.  Kā jau minēju iepriekš, ir nepieciešami trīs parametri, simbolu saraksts, sākuma un beigu datums.

Pirmajā koda rindā tiek definēts pandu panelis, veicot a DataReader klasē.  Zvans uz DataReader klase izveidos savienojumu ar Yahoo Finance serveri un pieprasīs katru dienu augstāko, zemāko, tuvāko un koriģēto slēgšanas vērtību katram no simboli sarakstā.  Šos datus paneļa objektā ielādē pandas.

A panelis ir 3-D matrica, un to var uzskatīt par DataFrames.  Katrs DataFrame kaudzē ir viena no pieprasīto krājumu un datumu diapazonu dienas vērtībām.  Piemēram, zemāk DataFrame, iesniegta iepriekš, ir noslēguma cena DataFrame no pieprasījuma.  Katram cenu veidam (augstai, zemai, tuvai un koriģētai tuvai) ir savs DataFrame rezultātā panelī atgriezās no pieprasījuma.

Otra koda rindiņa sagriež paneli vienā DataFrame un piešķir iegūtos datus df.  Šis būs mans mainīgais DataFrame ko izmantoju atlikušajā apmācības daļā.  Tam ir trīs akciju dienas tuvās vērtības norādītajā datumu diapazonā.  Paneli sagriež, norādot, kurš no paneļiem DataFrames jūs vēlētos atgriezties.  Šajā zemāk redzamajā koda rindiņā tas ir “Aizvērt”.

Kad mums būs savs DataFrame vietā es apskatīšu dažas pandas bibliotēkas noderīgās funkcijas, kas ļaus mums manipulēt ar DataFrame objekts.

def get_data (simboli, sākuma_datums, beigu_datums):
panelis = dati.DataReader (simboli, 'yahoo', sākuma_datums, beigu_datums)
df = panelis ['Aizvērt']
izdruka (df.galva (5))
izdruka (df.aste (5))
atgriešanās df

Galvas un astes

Trešā un ceturtā rinda get_data izdrukājiet datu rāmja funkcijas galvu un asti.  Es uzskatu, ka tas ir visnoderīgākais datu atkļūdošanā un vizualizācijā, taču to var izmantot arī, lai atlasītu pirmo vai pēdējo datu paraugu DataFrame.  Galvas un astes funkcija velk pirmo un pēdējo datu rindu no DataFrame.  Veselais skaitlis starp iekavām nosaka rindu skaitu, kas jāizvēlas ar metodi.

 .loc

The DataFrame loc metode sagriež DataFrame pēc indeksa.  Zemāk redzamā koda rindiņa df DataFrame pēc indeksa 2017-12-12.  Tālāk es sniedzu rezultātu ekrānuzņēmumu.

drukāt df.loc ["2017-12-12"]

loc var izmantot arī kā divdimensiju šķēli. Pirmais parametrs ir rinda, bet otrais - kolonna.  Zemāk redzamais kods atgriež vienu vērtību, kas ir vienāda ar Apple noslēguma cenu 2014. gada 12. decembrī.

drukāt df.loc ["2017-12-12", "AAPL"]

The loc metodi var izmantot, lai sagrieztu visas kolonnas rindas vai visas kolonnas vienā rindā. The : operators tiek izmantots, lai apzīmētu visus.  Zemāk esošajā koda rindā tiek atlasītas visas slejas rindas Google noslēguma cenām.

drukāt df.loc [:, "GOOG"]

.fillna

Parasti, it īpaši finanšu datu kopās, NaN vērtības ir jūsu DataFrame.  Pandas nodrošina funkciju, lai aizpildītu šīs vērtības ar skaitlisku vērtību.  Tas ir noderīgi, ja vēlaties veikt sava veida aprēķinus par datiem, kas var būt novirzīti vai neizdoties NaN vērtību dēļ.

The .fillna metode aizstās norādīto vērtību katrai NaN vērtībai jūsu datu kopā.  Zemāk redzamā koda rindiņa aizpildīs visu mūsu NaN DataFrame ar 0.  Šo noklusējuma vērtību var mainīt vērtībai, kas atbilst datu kopas, ar kuru strādājat, vajadzībām, atjauninot parametram, kas tiek pārsūtīts metodei.

df.fillna (0)

Datu normalizēšana

Izmantojot mašīnmācīšanās vai finanšu analīzes algoritmus, bieži ir lietderīgi normalizēt savas vērtības.  Šī metode ir efektīvs aprēķins, lai normalizētu datus pandās DataFrame.  Es iesaku jums izmantot šo metodi, jo šis kods darbosies efektīvāk nekā citas normalizācijas metodes un var parādīt lielu veiktspējas pieaugumu lielās datu kopās.

.iloc ir metode, kas līdzīga .loc bet ņem parametrus, kas balstīti uz atrašanās vietu, nevis uz tagu balstītus parametrus.  No kolonnas ir nepieciešams indekss, kas balstīts uz nulli, nevis kolonnas nosaukums .loc piemērs.  Zemāk esošais normalizācijas kods ir piemērs dažiem spēcīgiem matricas aprēķiniem, kurus var veikt.  Es izlaidīšu lineārās algebras nodarbību, bet būtībā šī koda rindiņa sadalīs visu matricu vai DataFrame pēc katras laikrindas pirmās vērtības.   Atkarībā no jūsu datu kopas jūs varētu vēlēties normu, kas balstīta uz min, max vai vidējo.  Šīs normas var arī viegli aprēķināt, izmantojot zemāk esošo matricas stilu.

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

Datu uzzīmēšana

Strādājot ar datiem, bieži vien ir nepieciešams tos attēlot grafiski.  Diagrammas metode ļauj viegli izveidot diagrammu no datu kopām.

Tālāk aprakstītā metode ir mūsu DataFrame un uzzīmē to uz standarta līniju diagrammas.  Metode prasa a DataFrame un nosaukums kā tā parametri.  Pirmā kodu kopu rinda cirvis uz zemes gabalu DataFrame df.  Tas nosaka teksta nosaukumu un fonta lielumu.  Šīs divas rindas nosaka etiķetes x un y asij.  Pēdējā koda rinda izsauc parādīšanas metodi, kas grafiku izdrukā konsolē. Esmu sniedzis ekrānuzņēmumu ar rezultātiem no zemāk redzamā sižeta.  Tas atspoguļo normalizētās katra akciju slēgšanas cenas izvēlētajā laika periodā.

def plot_data (df, title = "Akciju cenas"):
cirvis = df.sižets (nosaukums = nosaukums, fonta izmērs = 2)
cirvis.set_xlabel ("Datums")
cirvis.set_ylabel ("Cena")
sižets.rādīt ()

Pandas ir spēcīga datu apstrādes bibliotēka. To var izmantot dažāda veida datiem, un tas sniedz īsu un efektīvu metožu kopumu, lai manipulētu ar jūsu datu kopu. Tālāk es norādīju pilnu mācību pamācības kodu, lai jūs varētu tos pārskatīt un mainīt atbilstoši savām vajadzībām. Ir dažas citas metodes, kas jums palīdz apstrādāt datus, un es iesaku jums pārskatīt pandas dokumentus, kas ievietoti atsauces lapās zemāk. NumPy un MatPlotLib ir divas citas bibliotēkas, kas labi darbojas datu zinātnē un kuras var izmantot, lai uzlabotu pandas bibliotēkas spēku.

Pilns kods

importa pandas kā pd
def plot_selected (df, kolonnas, start_index, end_index):
plot_data (df.ix [start_index: end_index, kolonnas])
def get_data (simboli, sākuma_datums, beigu_datums):
panelis = dati.DataReader (simboli, 'yahoo', sākuma_datums, beigu_datums)
df = panelis ['Aizvērt']
izdruka (df.galva (5))
izdruka (df.aste (5))
drukāt df.loc ["2017-12-12"]
drukāt df.loc ["2017-12-12", "AAPL"]
drukāt df.loc [:, "GOOG"]
df.fillna (0)
atgriešanās df
def normalize_data (df):
atgriezties df / df.ix [0 ,:]
def plot_data (df, title = "Akciju cenas"):
cirvis = df.sižets (nosaukums = nosaukums, fonta izmērs = 2)
cirvis.set_xlabel ("Datums")
cirvis.set_ylabel ("Cena")
sižets.rādīt ()
def tutorial_run ():
# Izvēlieties simbolus
simboli = ['SPY', 'AAPL', 'GOOG']
#get dati
df = get_data (simboli, '2006-01-03', '2017-12-31')
plot_data (df)
ja __nosaukums == "__main__":
tutorial_run ()

Atsauces

Pandas mājas lapa
Pandas Vikipēdijas lapa
https: // lv.vikipēdija.org / wiki / Wes_McKinney
NumFocus mājas lapa

Tomb Raider for Linux apmācība
Tomb Raider ēna ir divpadsmitais papildinājums Tomb Raider sērijai - darbības piedzīvojumu spēļu franšīzei, kuru izveidoja Eidos Montreal. Spēli gan k...
Kā palielināt FPS Linux?
FPS apzīmē Kadri sekundē. FPS uzdevums ir izmērīt kadru ātrumu video atskaņošanā vai spēļu izrādēs. Vienkāršos vārdos nepārtrauktu pilnekrāna attēlu s...
Populārākās Oculus App Lab spēles
Ja esat Oculus austiņu īpašnieks, jums ir jāsazinās par sānu ielādi. Sānu ielāde ir process, kurā austiņās tiek instalēts saturs, kas nav veikals. Sid...