Pandas resample

Pandas resample

“Tidsseriedata må ofte samles eller oppsummeres ved hjelp av en ny tidsramme. Disse tidsseriedataene behandles vanligvis ved hjelp av pandaer “DataFrame.resample () ”-funksjon. Det er en praktisk tilnærming for å gjenvise tidsserier og konvertere frekvenser.”

For å bruke denne metoden, må vi følge syntaksen gitt nedenfor:

Vi vil se på den praktiske utførelsen av "resample ()" -metoden med forskjellige teknikker i denne guiden.

Eksempel 1: Bruke Resample () -metoden for å beregne summen

For gjenvinning av tidsseriedataene, bruker vi Pandas “Resample ()” -metoden. Vi vil se utførelsen av Python -skriptet for å gjenskape tidsseriedataene for å finne frekvenser i spesifiserte dager.

Det første og grunnleggende kravet er et verktøy eller programvare som gir oss et miljø for å samle og utføre programmet. Vi har valgt Spyder -verktøyet for implementering av eksemplene koder. Vi har åpnet Spyder -grensesnittet; en ny fil med ".py ”utvidelse er lansert. Begynn nå å skrive Python -skriptet.

Det nødvendige å utføre skriptet her er "Pandas" -biblioteket. Dette er fordi "resample ()" -metoden er en pandasmetode. For å kunne bruke det i skriptet, må vi først importere biblioteket som holder det. Så vi lastet Pandas -biblioteket inn i Python -filen vår og laget "PD" for å bli brukt som alias av "Pandas" gjennom hele programmet.

Koden startet med å påkalle “PD.date_range () ”-funksjon. Det vil generere et datoområde med de medfølgende grensene. Vi oppretter et datoområde fordi Pandas “Resample ()” -metoden fungerer på Date_ Time -serien. Mellom parentesene i funksjonen har vi definert en dato som "2022/2/3". Dette er den opprinnelige verdien av datoområdet. Den andre parameteren, "periode", vil definere nummeret på en tuple for datoen vi har spesifisert "15", så datoområdet starter fra “2022/2/3” og går opp til 15 tupler. Her er frekvensen "D" som betyr "dag" som standard. Så intervallene vil bli generert på basen av dager. “PD.date_range () ”-metode vil opprette et datoområde på 15 dager. For å lagre utdataområdet, har vi initialisert en variabel “index_col”. Nå får vi tilgang til datoområdet ved å nevne denne variabelen.

Etter det må vi konstruere en Pandas dataaframe. For å konstruere en dataaFrame med brukerdefinerte verdier, gir Pandas oss en funksjon “PD.Dataramme()". Vi har kalt denne metoden inn i programmet vårt og initialisert den med 3 kolonner som er "rare", "til og med" og "prime". Verdiene som er definert for hver kolonne har samme lengde, som er 15.

Den første kolonnen, "Odd", holder oddetall som verdier. Disse verdiene er “1”, “3”, “5”, “7”, “9”, “11”, “13”, “15”, “17”, “19”, “21”, “23” , “25”, “27” og “29”. Selv tall lagres i "jevn" kolonnen som "2", "4", "6", "8", "10", "12", "14", "16", "18", "20" , “22”, “24”, “26”, “28” og “30”. Mens den siste kolonnen, “Prime”, har de første 15 primtallene som verdier: “1”, “2”, “3”, “5”, “7”, “11”, “13”, “17” , “19”, “23”, “29”, “31”, “37”, “41” og “47”.

Rett etter å ha definert verdier for alle kolonnene i “PD.DataFrame () ”-metoden, vi har også angitt indekskolonnen. Vi gjorde dette ved å bruke "indeks" -egenskapen til DataFrame og tilordne den "Index_col" -variabelen, som holder dato -serien. Dette betyr at vi setter datoområdet som indekskolonnen til vår datafram i stedet for standardindekslisten. "Tall" -objektet vil bevare resultatet som vil bli generert når vi påkaller "PD.DataFrame () ”-funksjon. Dataframe vises til slutt ved å bruke metoden “Print ()”. Denne metoden viser ganske enkelt det som er gitt som innspill i den. Vi la inn objektet "tall" for å vise det på terminalen.

Det utførte programmet genererer en utgang der vi kan se en DataFrame har 3 kolonner, “Odd”, “Even” og “Prime”, mens indekskolonnen har et datoområde som starter fra “2022-02-03” og slutter på “2022-02-17”, og skaper et 15-dagers intervall.

Vi vil nå utføre Resampling på denne DataFrame. Pandas “resample ()” fungerer med DateTimeIndex. Denne metoden tar tidsseriedata som input og gjør disse tidsseriedataene til forskjellige definerte frekvenser.

For denne illustrasjonen vil vi endre frekvensen av DateTimeIndex fra et 1-dagers intervall til et 2-dagers intervall. Vi har påkalt “PD.resample ().sum () ”-metode. "Resample ()" -metoden vil erklære frekvensen, mens "sum ()" -funksjonen vil beregne summen av dagene for den medfølgende frekvensen. Vi har gitt navnet på DataFrame som "tall" med ".resample ().sum () ”-metode.

Parameteren “Rule” sendes inn i “resample ()” -metoden, og verdien er satt til “2D”, som betyr å skape hyppigheten av et 2-dagers intervall og deretter beregne summen av verdier i DataFrame for 2 påfølgende dager. Den resulterende resamplede DataFrame vil bli lagret i variabelen “Two_Days”. Til slutt presenterte vi den på skjermen ved å bruke "print ()" -funksjonen.

Her viser utdatabildet en gjenutgjemt DataFrame der vi har 8 poster. Frekvensen er satt for 2D for DateTimeIndex, og summen av verdier beregnes for et 2D -intervall.

Eksempel nr. 2: Bruke Resample () -metoden for å beregne middelverdien

Den første demonstrasjonen brukte "sum ()" -funksjonen for å beregne summen av resamplede data med frekvensen på 2 dager. Bortsett fra å beregne summen, bruker vi også andre metoder med "resample ()" -metoden. I denne illustrasjonen skal vi bruke "Mean ()" -funksjonen for å beregne gjennomsnittet av de resamplede dataene med en ukentlig frekvens.

Vi bruker den samme dataaframet som er opprettet i tidligere tilfelle. “DF.resample () ”-funksjon brukes med".Mean () ”-metode. Vi har påkalt metoden med 2 parametere; “Regel” og “lukket”. "Regel" -parameteren tar lengden på tiden for den nødvendige konverteringen. Som vi vil ha konverteringen i ukentlige tidsseriedata, så la vi inn “W”; brukt i en uke. Den andre parameteren, "lukket", er satt til "høyre" som standard for "W" -frekvensen, men her har vi endret den til "venstre". Dette betyr at intervallet på venstre søppel er inkluderende, og intervallet på høyre søppel er begrenset.

Så brukte vi “.Mean () ”-funksjon, som vil beregne gjennomsnittet av verdiene med ukentlige intervaller. Den endelige DataFrame vil bli holdt av den "gjennomsnittlige" variabelen. "Print ()" -funksjonen vil vise den på Python -konsollen.

Når vi kompilerer Python -programmet, får vi denne dataaframmen som bare har 3 poster. Den har beregnet gjennomsnittsverdier i en uke i hver kolonne.

På samme måte kan vi konvertere frekvensen til månedlig ved å bruke “M”, for kvartalsvise bruk kravet.

Konklusjon

Tidsseriedata må noen ganger konverteres til en ny frekvens. Pandas gir oss en metode, “DF.resample () ”, for å håndtere dette behovet. Denne artikkelen demonstrerte to forskjellige metoder for å resamplere dataene ved bruk av DateTimeIndex. Vi har utøvd forskjellige teknikker for å beregne forskjellige intervalldata. Det første eksemplet utdypet beregningen av summen av 2 dagers frekvens for resamplingdata, mens de 2nd Eksempel ble utført for å finne ut gjennomsnittet av verdiene på ukentlige baser. Hver teknikk blir presentert for en prøveprogramkode og tilsvarende utgang.