Date din seria temporală în panda

În acest tutorial, veți învăța cum să reeșantionați datele din seria temporală folosind Pandas. Puteți viziona videoclipul complet al acestui tutorial în partea de jos a acestui blog .

Care este această idee de reeșantionare? Acest lucru este legat de datele din seria temporală și ceea ce vom face este să schimbăm frecvența la care sunt raportate acele date. De exemplu, schimbarea valorii anuale în lunar sau săptămânal sau schimbarea datelor orare în zilnic. Pe scurt, schimbăm nivelul în ierarhie.

Acest lucru poate fi folosit din mai multe motive, cum ar fi obținerea de tendințe mai fiabile , dimensiunile eșantionului și sezonalitate . La unele rapoarte, va avea mai mult sens dacă folosim un anumit nivel al ierarhiei față de altul.

În plus, reeșantionarea poate ajuta dacă aveți surse de date diferite și trebuie să efectuați îmbinarea datelor din seria temporală. Acest lucru va ajuta și atunci când aveți de-a face cu o nepotrivire în ierarhie .

Date din seria temporală în panda

Pentru a descompune acest lucru în continuare, avem eșantionare și eșantionare suplimentară.

Reducerea eșantionării este de a reduce frecvența raportării . Pot fi lucruri precum conversia de la o secundă la o oră pentru a avea mai puține valori sau reducerea eșantionării de la lună la trimestru.

Pe de altă parte, supraeșantionarea este de a crește frecvența raportării de la nivelul lunii până la zi . Vom avea mai multe exemple în acest sens mai târziu.

Date din seria temporală în panda

Cuprins

Cum să reeșantionați datele din seria temporală folosind Pandas

Cum vom face asta în Pandas?

În primul rând, vom schimba indexul în coloana noastră de date din seria temporală . Apoi, putem eșantiona folosind interpolarea, care va completa valorile, și putem eșantiona pentru a cumula valorile.

Date din seria temporală în panda

Să trecem la Jupyter Notebook Python și să verificăm asta cu Pandas.

Pentru început, vom folosi Pandas tastând import panda ca pd , urmat de import seaborn ca sns pentru a-l vizualiza și import matplotlib.pyplot ca plt pentru a personaliza vizualizarea Seaborn .

Următorul lucru de făcut este să obțineți datele din datele de import vega_datasets . Este un loc frumos pentru a obține surse de mostre. De asemenea, vom obține biblioteca sp = data.sp500 ( ) și sp.head ( ) .

Date din seria temporală în panda

Iată datele noastre de până acum. Avem returnările zilnice și prețul pentru fiecare zi.

Date din seria temporală în panda

Pentru a seta coloana index la data, tastați sp.set_index(['data'], inplace=True), apoi apelați din nou sp.head .

Date din seria temporală în panda

Utilizarea eșantionării pentru a obține valori

Apoi, pentru a avea mai multe valori, să folosim upsampling. Deoarece avem datele pentru fiecare zi, putem coborî la oră utilizând cea mai simplă funcție care este sp [['preț']]. reeșantionați ('H'). umpleți ( ) , apoi rulați-l. H reprezintă oră, M pentru lună, D pentru zi și așa mai departe. Puteți afla mai multe despre acest lucru în documentația Pandas .

După cum putem vedea, pe 1 ianuarie la miezul nopții, prețul este 1394,46, la fel ca și orele următoare de la 1:00 AM la 4:00 AM. Un alt exemplu este pe 2 ianuarie, unde prețul de închidere este 1366,42.

Date din seria temporală în panda

Există și alte modalități de a face acest lucru chiar dacă valoarea nu este disponibilă la nivel de oră. De asemenea, există modalități mai sofisticate decât simpla completare înainte . Pentru exemplul nostru, ceea ce am făcut este modalitatea de bază de a face interpolarea supraeșantionării.

Apoi, să trecem la downsampling tastând avg_month = sp [['price]].resample ('M').mean ( ) , apoi avg_month.head ( ) și rulați-l pentru a verifica.

După cum este ilustrat, putem vedea ultima zi a fiecărei luni și prețul mediu. Putem reduce eșantioanele pentru a avea mai puține valori, sau ceea ce numim reducere.

Date din seria temporală în panda

Pentru a vizualiza acest lucru, să scriem re-plot dimensiunile care sunt desenate. Apoi, urmat de sns.lineplot . Graficul liniei funcționează mai bine cu o axa X mai lungă, în timp ce valoarea Y este prețul mediu lunar.

Pentru a vedea prețul mediu pentru luna reprezentată, să rulăm acest lucru.

Date din seria temporală în panda

Din nou, există o mulțime de moduri diferite în care putem face acest lucru. De exemplu, dacă vrem să știm cel mai mic preț pe trimestru, tot ce trebuie să facem este să tastați quarter_low , apoi quarter_low.head pentru a-l rula.

Așadar, acum putem vedea cea mai mică valoare trimestrială găsită în fiecare trimestru. Așa faci o reeșantionare.

Date din seria temporală în panda


Gestionarea datelor lipsă în Python utilizând metoda de interpolare
MultiIndex în Pandas pentru
seturi de date pe mai multe niveluri sau ierarhice în Pandas cu ProfileReport | Python în LuckyTemplates

Concluzie

Pentru a finaliza, Pandas este cu adevărat construit pentru reeșantionare și date din seria temporală . Dacă lucrați la date din seria temporală și aveți granularități diferite, reeșantionarea poate fi foarte utilă.

În plus, asigurați-vă că citiți documentația Pandas despre metoda de reeșantionare pentru a afla o mulțime de moduri diferite de a face acest lucru. Ne-am uitat la cele de bază, dar puteți face lucruri precum bisăptămânal, ultima zi lucrătoare a lunii și mai multe opțiuni pentru reeșantionare.

Toate cele bune,

George Mount

Leave a Comment

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Cum să salvați și să încărcați un fișier RDS în R

Cum să salvați și să încărcați un fișier RDS în R

Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.

Introducere la filtrarea contextului în LuckyTemplates

Introducere la filtrarea contextului în LuckyTemplates

În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.

Idei de materializare pentru cache-urile de date în DAX Studio

Idei de materializare pentru cache-urile de date în DAX Studio

Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.

Raportare de afaceri folosind LuckyTemplates

Raportare de afaceri folosind LuckyTemplates

Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți