Pandas tidsserier

Pandas tidsserier

Mange tidsserier har en definert frekvens, noe som betyr at datapunktene deres er delt inn i faste intervaller som hvert minutt, hver dag eller hver uke. Inkonsekvente intervaller kan også være til stede i tidsserien. En dato representert som tid kan være en del av en tidsserie med data. Tidsstemplede eksempler inkluderer en dato som 7. august 2022, klokka 12:00. En tidsserie i Python er en serie/samling av datapunkter der hver og en har en tidsstempel tilknyttet den. I aksjemarkedet er aksjens pris til forskjellige tider i løpet av dagen et realistisk eksempel. Selv om tidsserier også tilbys av SCI-Kit-Learn, gir Pandas en samling av flere funksjoner. Vi kan legge til tid og dato for hver post i denne Pandas -modulen og få DataFrame -postene. Ved hjelp av Pandas tidsseriemodul kan vi oppdage dataene for et bestemt utvalg av datoer og tider. La oss snakke om flere primære mål for å forklare tidsserieanalysen i pandaer.

Tidsserieanalyse Hovedmål

  • Opprette datoserien
  • Arbeide med tidsstempel for data
  • strengverdier/data til tidsstempelkonvertering
  • Data skiver ved hjelp av en tidsstempel i forskjellige perioder som gjenvinner tidsserien
  • Bestem aggregatene eller sammendragsstatistikken
  • Håndtering av data med manglende verdier

Hvorfor pandaer for tidsserieanalyse?

Selv om Pandas -biblioteket har mange nyttige funksjoner, tilbyr Python moduler som DateTime som utfører operasjoner på data som datoer og tider. Disse modulene brukes oftere for behandling av tidsseriedata. I tillegg, for tidsserieanalyse, opprettholder Pandas forholdet på tvers av biblioteker. Når data er tidsstempel, er Pandas 'tidsseriefunksjoner ganske nyttige. Pythons datetime tilsvarer tidsstempel i pandaer. Det brukes til DateTimeIndex -oppføringer og andre Pandas Timeseries -datastrukturer. Seriestrukturen, som indekseres etter tidsstempel, er den mest grunnleggende tidsseriestrukturen.

Hvordan lage en grunnleggende Pandas -tidsserie

For å lage en enkel tidsserie, vil vi først importere de nødvendige modulene eller bibliotekene, for eksempel pandaer, numpy og datetime. Tid og dato er ikke separate datatyper i Python, men de kan håndteres ved hjelp av DateTime -modulen, som kan importeres. Det er ikke noe krav å installere Python DateTime -modulen utenfor fordi den allerede er inkludert i Python. Python DateTime -modulen gir klasser for å jobbe med dato og klokkeslett. I Pandas vil vi manipulere tidsserien ved å følge de nevnte målene for å analysere tidsserien.

La oss lage en liste som inneholder DateTime -objektene.

Nå vil vi lage en serie ved hjelp av denne listen som inneholder datetimeverdiene. Vi vil bruke datoverdiene som indeksen for serieobjektet vårt.

Vi spesifiserte indeksen for serier ved å bruke indeksparameteren i serien () -funksjonen. Ved å trekke ut indeksen i serien, kan vi bestemme dens type.

Som det kan sees, er variabelenes indeksdatastruktur en DatatimeIndex.

Konvertere strengverdier eller data til tidsstempel

Dato- eller tidsverdiene kan konverteres til forskjellige tidsseriedatastrukturer. Tre forskjellige datastrukturer kan brukes til å manipulere tidsserien, i.e., tidsstempler, periodestruktur og timedelta -struktur. DateTimeIndex og Time Stamps -objekter er de vanligste av disse strukturene. To_DateTime () -metoden kan konvertere en bestemt dato eller serie med datoer til tidsstempler.

Funksjonen har konvertert strengdatoverdien til tidsstempel. Ulike datoformater kan konverteres til DateTimeIndex -objekter ved bruk av TO_DateTime () -funksjonen.

Vi har bestått datadataene i fire forskjellige formater i en liste, i.e., [DateTime (2022,6,8), “7. august 2022”, “2022-June-13”, “20220406”]. Som du kanskje legger merke til, har funksjonen vellykket konvertert hvert format til DatatimeIndex -objektet. Vi kan også endre dataserienes datastruktur. For å legge til frekvenskoder, kan du endre DateTimeIndex i periodindex ved å bruke til_period () -metoden. Verdien “D” representerer for eksempel en daglig frekvens.

Datoene kan også trekkes fra for å bestemme dagene mellom dem.

Vi har trukket fra alle datoene fra datoen ved indeks 0. Et Timedeltaindex -objekt returneres, og viser resultatene som en liste som inneholder antall dager etter at du har trukket fra hver dato med datoen på indeks 0.

Bruker Date_range -funksjonen for å lage en tidsserie

En datoserie kan opprettes ved hjelp av flere funksjoner i pandaer. For tidsstempler kan vi bruke date_range (). For periode, period_range () og timedelta_range () for å opprette tid Delta -data. Dato_range () -funksjonen vil få en DateTimeIndex med en spesifisert frekvens. Dato_range () -metoden krever startdato og sluttdato.

I tillegg kan du bruke periodparameteren inne i dato_range (). Du trenger bare å spesifisere startdatoen for å oppnå dette. Funksjonen vil returnere dataene for den spesifiserte perioden og frekvensen. FREQ -parameteren kan også brukes når du oppretter en tidsserie ved hjelp av Date_Range (). Datoområdet metodens standardfrekvens er daglig. Vi kan bruke "H" -verdien, som står for timen, for å få frekvensen som timer.

Data skiver ved hjelp av en tidsstempel

Vi vil først opprette en dataaframe ved hjelp av PD.DataFrame -funksjon, og indeksen vil bli spesifisert som DateTimeIndex.

Først opprettet vi en tidsserie og spesifiserte den deretter som indeksen for DataFrame. For å trekke ut datoene mellom to tidsserier, bruker vi skiveoperatøren.

Selv om det grunnleggende DataFrame vi har opprettet inneholder data med en daglig frekvens, kan vi gjenta dataene og velge hvordan du beregner den samlede statistikken for den spesifiserte frekvensen. I stedet for å beregne dataene med en daglig frekvens, kan vi i stedet beregne dataene til en månedlig frekvens.

Finne sammendragsstatistikk

Legg til en ny kolonne i vår opprinnelige dataramme som beregner rullende sum over en to-vinduperiode. Vi kan bruke Rolling Window Statistics til å analysere og glatte tidsserie-data. For å generere et rullende vindu over DataFrame -kolonnen, bruker vi Rolling () -metoden. Da vil summen () -funksjonen bli brukt til å få den rullende summen.

En ny kolonne “Roll_sum” er opprettet som inneholder rullende sumverdier for spesifiserte vinduer, i.e., 2.

Håndtere manglende verdier

Som det kan observeres, har rullesumkolonnen en manglende verdi i første rad. Vi kan enten videresende eller fylle ut dataene når vi arbeider med manglende dataverdier. Vi oppretter en ny kolonne ved hjelp av rullende sumverdier for å fylle ut dataene.

Vi fylte på nytt den manglende verdien ved hjelp av FillNA () -funksjonen og brukte metodeparameteren inne i funksjonen. Det er nyttig å erstatte nulldata med realistiske verdier, for eksempel gjennomsnittet av en periode. Husk imidlertid at hvis du har å gjøre med en tidsserie og ønsker at statistikken din skal være realistisk, bør du ikke fylle ut dataene dine fordi det ville være tilsvarende å gjøre en prediksjon og innhente informasjonen du ikke ville ha på det periode.

Konklusjon

I denne artikkelen har vi diskutert tidsserien i pandaer. Vi diskuterte hva tidsserie er, hva hovedmålene med tidsserieanalyse er, og hvorfor vi brukte pandaer til tidsserier. I dette innlegget demonstrerte vi hvordan vi kan utføre enkel manipulasjon som å lage en enkel tidsserie, datastaking ved hjelp av en tidsstempel, finne sammendragsstatistikk og håndtere manglende verdier.