datahacker.rs@gmail.com

#008 Series, vremenska serija

#008 Series, vremenska serija

Vremenske serije

Ovaj post posvećen je podacima za čiju analizu i procesiranje vremenski trenutak igra važnu ulogu. Primeri su signali/serije koje srećemo:

  • u radu na berzi, dnevni kurs valute,
  • prilikom merenja procesa koji se menjaju na dnevnom nivou: temperatura, zagađenost vazduha
  • broj dnevnih putnika koje preveze jedna aviokompanija
  • broj gostiju/turista koji posete jednu zemlju/grad/hotel u jednom danu.

Da bismo radili sa serijama (Series) koristićemo biblioteku Pandas. Serija predstavlja zapravo dva NumPy niza: .index i .values. Prvi koristimo da bismo sačuvali vremenski indeks. Ovo može da bude redni broj (0, 1, 2, 3 .. ili 10, 20, 30), datum-godina/mesec/dan ili vreme/sat/minut/sekund. Drugi deo predstavlja same vrednosti serije i nalazi se u “serija.values” nizu. Ovde dakle čuvamo podatke o temperaturi, broju turista i slično.

Pogledajmo kako možemo ručno napraviti neke jednostavne serije.

Ono što je važno napomenuti za serije jeste način na koji možemo pristupati samim elementima i prikazati seriju grafički.

Pozabavimo se sada nekim pravim, istorijske serijama. One su najčešće sačuvane u formatu .csv i prva kolona može da predstavlja datum. Pogledajmo stoga datoteku  “daily-total-female-births.csv” (koristite desni klik i koristite save-as kako biste sačuvali datoteku). Radi se o datasetu gde je beležen broj ženske dece koje su rođene u jednom danu negde u Kaliforniji. Pređimo na naš kod:

Učitali smo seriju i uradili sledeće: shvatili smo da postoji format u Python-u koji struktuira datum-vreme i zove se timestamp, iscrtali smo seriju i videli da je za godinu dana prikazano koliko je dece rođeno svakog dana. Možemo opisati ovu seriju osnovnim statističkim parametrima. Pogledajmo naredbu .describe().

U slučaju da nas zanima samo jedan mesec, na primer jul, možemo da napravimo novu seriju – jul. Nju sada možemo nezavisno da analiziramo. Možemo odrediti koliko se najmanje dece rodilo i koji je datum to bio.

Rad sa serijama daje nam mogućnost da kreiramo neke naprednije grafike: histogram i boxplot.

Boxplot je vid grafičkog prikaza za naš primer koji daje za svaki mesec srednju vrednost – zelena horizontalna linija. U plavom pravougaoniku smešteno je 50% svih vrednosti. Takođe, mogu biti prikazani i outlier-i kao pojedinačne tačke. Boxplot je veoma koristan kada želimo da pratimo trend i da ispitamo da li imamo rast ili ne.

Kako je zapravo napravljen boxplot? Prvo je napravljena promenljiva grupe. Ona sadrži grupacije po mesecima – M (Month).

Sami proverite šta dobijate za sledeći ispis, pa će struktura grupe, po kojoj se vrše iteracije postati jasnija:

for x in grupe:
           print (x[1].values)
           print (x[1].index)

Promenljiva meseci predstavlja matricu od 12 kolona čije su vrednosti brojevi rođene dece u tim mesecima. Dakle, broj redova je 31. U slučaju da mesec ima manje dana, ove vrednosti su popunjene takozvanim NaN (Not a Number) vrednostima.  Ovaj deo koda pojasnićemo i kasnije kada budemo detaljnije analizirali DataFrame tip podataka.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

5 × three =