Дата Сциенце

Водич за Пандас Дата Фраме

Водич за Пандас Дата Фраме

Панде за нумеричку анализу

Пандас је развијен из потребе за ефикасним начином управљања финансијским подацима у Питхону.  Пандас је библиотека која се може увести у питхон за помоћ у манипулисању и трансформацији нумеричких података. Вес МцКиннеи започео је пројекат 2008. године.  Пандама сада управља група инжењера, а подржава их непрофитна организација НУМФоцус, која ће осигурати њен будући раст и развој. То значи да ће панде бити стабилна библиотека дуги низ година и моћи ће се укључити у ваше апликације без бриге због малог пројекта.

Иако су панде у почетку развијене за моделирање финансијских података, њихове структуре података могу се користити за манипулисање разним нумеричким подацима.  Пандас има бројне структуре података које су уграђене и могу се користити за лако моделирање и манипулисање нумеричким подацима. Овај водич ће покрити панде Оквир података дубинска структура података.

Шта је ДатаФраме?

А Оквир података је једна од примарних структура података у пандама и представља дводимензионалну колекцију података.  Постоји много аналогних објеката за ову врсту дводимензионалне структуре података, од којих неки укључују икада популарну Екцел табелу, табелу базе података или дводимензионални низ који се налази у већини програмских језика.  Испод је пример а Оквир података у графичком формату.  Представља групу временских серија цена затварања акција по датуму.

Овај водич ће вас провести кроз многе методе оквира података, а користићу финансијски модел из стварног света да демонстрирам ове функције.

Увоз података

Класе Пандас имају неке уграђене методе које помажу при увозу података у структуру података. Испод је пример како увозити податке у пандас Панел помоћу ДатаРеадер класа.  Може се користити за увоз података из неколико бесплатних извора финансијских података, укључујући Куандл, Иахоо Финанце и Гоогле. Да бисте користили библиотеку панда, морате је додати као увоз у свој код.

увези панде као пд

Метода у наставку покреће програм извођењем методе покретања водича.

ако је __наме__ == "__главно__":
туториал_рун ()

Тхе туториал_рун метода је доле наведена.  То је следећа метода коју ћу додати коду.  Први ред ове методе дефинише листу деоница.  Ова променљива ће се користити касније у коду као листа залиха за које ће се тражити подаци да би се попунила Оквир података.  Друга линија кода позива гет_дата метода.  Као што ћемо видети, гет_дата метода узима за улаз три параметра. Пропустићемо списак залиха, датум почетка и датум завршетка података које ћемо затражити.

деф туториал_рун ():
#Стоцк Тицкерс за извор из Иахоо Финанце
симболи = ['ШПИЈУНИРАЊЕ', 'ААПЛ', 'ГООГ']
#гет дата
дф = гет_дата (симболи, '03.01.2006', '31.12.2017')

У наставку ћемо дефинисати гет_дата метода.  Као што сам горе споменуо, потребна су три параметра: листа симбола, датум почетка и завршетка.

Први ред кода дефинише панел панде инстанцирањем а ДатаРеадер класа.  Позив на ДатаРеадер класа ће се повезати са Иахоо Финанце сервером и затражити дневне високе, ниске, затворене и прилагођене вредности затварања за сваку акцију у симболи листа.  Ове податке панде учитавају у објекат панела.

А панел је 3-Д матрица и може се сматрати „хрпом“ од ДатаФрамес.  Свака Оквир података у гомили садржи једну од дневних вредности за тражене залихе и временске периоде.  На пример, испод Оквир података, представљена раније, је цена затварања Оквир података из захтева.  Свака врста цене (висока, ниска, затворена и прилагођена затворена) има своју Оквир података у резултујућем панелу враћеном из захтева.

Други ред кода пресеца плочу у један Оквир података и додељује резултујуће податке дф.  Ово ће бити моја променљива за Оквир података које користим за остатак туторијала.  Држи дневне блиске вредности за три акције за наведени период.  Панел се пресеца одређивањем које од плоча ДатаФрамес желели бисте да се вратите.  У овом примеру ретка кода испод је „Затвори“.

Једном кад имамо своје Оквир података на месту, покрићу неке корисне функције у библиотеци панди које ће нам омогућити да манипулишемо подацима у Оквир података објект.

деф гет_дата (симболи, датум_почетка, датум_конца):
панел = подаци.ДатаРеадер (симболи, 'иахоо', датум почетка, крајњи датум)
дф = панел ['Затвори']
испис (дф.глава (5)
испис (дф.реп (5))
ретурн дф

Главе и репови

Трећи и четврти ред гет_дата исписати функцијску главу и реп оквира података.  Сматрам да је ово најкорисније у отклањању грешака и визуелизацији података, али се такође може користити за одабир првог или последњег узорка података у Оквир података.  Функција главе и репа извлачи први и последњи ред података из Оквир података.  Цјелобројни параметар између заграда дефинише број редова које ће метода одабрати.

 .лоц

Тхе Оквир података лоц метода реже Оквир података по индексу.  Доњи ред кода пресеца дф Оквир података индексом 2017-12-12.  У наставку сам дао снимак екрана резултата.

принт дф.лоц ["12.12.2017"]

лоц може се користити и као дводимензионални пресек. Први параметар је ред, а други параметар је колона.  Доњи код даје једну вредност која је једнака цени затварања Аппле-а 12. децембра 2014.

принт дф.лоц ["2017-12-12", "ААПЛ"]

Тхе лоц метода се може користити за резање свих редова у колони или свих колона у реду. Тхе : оператор се користи за означавање свих.  Ред у наставку кода бира све редове у колони за Гоогле цене затварања.

принт дф.лоц [:, "ГООГ"]

.филлна

Уобичајено је, посебно у скуповима финансијских података, да вредности НаН садрже ваше вредности Оквир података.  Пандас пружа функцију за попуњавање ових вредности нумеричком вредношћу.  Ово је корисно ако желите извршити неку врсту израчунавања података који могу бити искривљени или неуспешни због НаН вредности.

Тхе .филлна метода ће заменити наведену вредност за сваку НаН вредност у вашем скупу података.  Доњи ред кода испунит ће сав НаН у нашем Оквир података са 0.  Ова подразумевана вредност може се променити за вредност која задовољава потребе скупа података са којим радите ажурирањем параметра који се прослеђује методи.

дф.филлна (0)

Нормализирање података

Када користите алгоритме машинског учења или финансијске анализе, често је корисно нормализовати своје вредности.  Следећи метод је ефикасан прорачун за нормализацију података у пандама Оквир података.  Препоручујем вам да користите ову методу јер ће овај код радити ефикасније од осталих метода за нормализацију и може показати велика повећања перформанси на великим скуповима података.

.илоц је метода слична .лоц али узима параметре засноване на локацији, а не на параметрима заснованим на ознакама.  Потребан је индекс заснован на нули, а не име колоне из .лоц пример.  Доњи нормализациони код је пример неких моћних матричних прорачуна који се могу извршити.  Прескочићу лекцију линеарне алгебре, али у суштини овај ред кода ће поделити целу матрицу или Оквир података првом вредношћу сваке временске серије.   У зависности од вашег скупа података, можда ћете желети норму засновану на минималној, максималној или средњој вредности.  Ове норме се такође могу лако израчунати користећи доњи стил заснован на матрици.

деф нормализе_дата (дф):
повратак дф / дф.илоц [0 ,:]

Цртање података

Када радите са подацима, често је потребно да их прикажете графички.  Метода графикона омогућава вам да лако направите граф из скупова података.

Метод у наставку узима наш Оквир података и исцртава на стандардном линијском графикону.  Метода узима а Оквир података и наслов као његове параметре.  Први ред скупова кодова секира на заплет ДатаФраме дф.  Поставља наслов и величину фонта за текст.  Следећа два реда постављају ознаке за к и и осу.  Последњи ред кода позива методу схов која исписује граф на конзолу. У наставку сам пружио снимак екрана резултата из заплета.  Ово представља нормализоване цене затварања за сваку од акција током одабраног временског периода.

деф плот_дата (дф, титле = "Цене акција"):
секира = дф.заплет (наслов = наслов, величина слова = 2)
секира.сет_клабел ("Датум")
секира.сет_илабел ("Цена")
заплет.Прикажи()

Пандас је робусна библиотека за манипулацију подацима. Може се користити за различите врсте података и представља сажет и ефикасан скуп метода за манипулацију вашим низом података. У наставку сам навео целокупан код из водича како бисте могли да га прегледате и промените у складу са својим потребама. Постоји неколико других метода које вам помажу у манипулацији подацима и саветујем вам да прегледате документе о пандама објављене на доњим референтним страницама. НумПи и МатПлотЛиб су две друге библиотеке које добро раде за науку о подацима и могу се користити за побољшање снаге библиотеке панди.

Фулл Цоде

увези панде као пд
деф плот_селецтед (дф, цолумнс, старт_индек, енд_индек):
подаци о парцели (дф.ик [старт_индек: енд_индек, колоне])
деф гет_дата (симболи, датум_почетка, датум_конца):
панел = подаци.ДатаРеадер (симболи, 'иахоо', датум почетка, крајњи датум)
дф = панел ['Затвори']
испис (дф.глава (5)
испис (дф.реп (5))
принт дф.лоц ["12.12.2017"]
принт дф.лоц ["2017-12-12", "ААПЛ"]
принт дф.лоц [:, "ГООГ"]
дф.филлна (0)
ретурн дф
деф нормализе_дата (дф):
повратак дф / дф.ик [0 ,:]
деф плот_дата (дф, титле = "Цене акција"):
секира = дф.заплет (наслов = наслов, величина слова = 2)
секира.сет_клабел ("Датум")
секира.сет_илабел ("Цена")
заплет.Прикажи()
деф туториал_рун ():
# Изаберите симболе
симболи = ['ШПИЈУНИРАЊЕ', 'ААПЛ', 'ГООГ']
#гет дата
дф = гет_дата (симболи, '03.01.2006', '31.12.2017')
подаци о парцели (дф)
ако је __наме__ == "__главно__":
туториал_рун ()

Референце

Почетна страница Панде
Страница Пандас Википедиа
хттпс: // ен.википедиа.орг / вики / Вес_МцКиннеи
Почетна страница НумФоцус-а

Најбоље игре за ручно праћење
Оцулус Куест је недавно представио сјајну идеју ручног праћења без контролера. Са све већим бројем игара и активности које извршавају подршку формално...
Како приказати ОСД прекривач у целом екрану Линук апликација и игара
Играње игара преко целог екрана или коришћење апликација у режиму целог екрана без ометања може вам одсећи релевантне системске информације видљиве на...
Топ 5 карата за хватање игара
Сви смо видели и волели стримовање играња на ИоуТубе-у. ПевДиеПие, Јакесептицие и Маркиплиер само су неки од најбољих играча који су зарадили милионе ...