Pandas Rolling Groupby

Pandas Rolling Groupby
Python -programmeringsspråket gir Pandas Library som har mange metoder som utfører enkle til komplekse funksjoner. Pandas i Python gjør dataanalyse veldig enkel og enkel. Dessuten er det et veldig eksepsjonelt språk for å utføre dataundersøkelse mens du gir et utrolig miljø med informasjonsdrevne Python-pakker.

I denne artikkelen vil vi diskutere Pandas Rolling Groupby -funksjonen i Python. Her vil vi demonstrere noen nyttige eksempler som vil hjelpe deg å lære om Pandas Rolling Groupby -funksjonen og hvordan du bruker den funksjonen i Python Code. Så la oss begynne med definisjonen av rullefunksjonen.

Hva ruller pandas?

Pandaene gir flere nyttige funksjoner og rulling () er en av de usedvanlig gode funksjonene som er i stand til å utføre komplekse beregninger på data. Rulling () -funksjonen gir en rullende vindusberegning på inngangsdataene i den gitte objektserien. Rolling Window -konseptet brukes stort sett i tidsseriedata eller signalbehandling.

Med andre ord, la oss si at vi tok en vindusstørrelse på 'W' om gangen 'T' og brukte noen matematiske operasjoner på det. Vinduets 'w' størrelse betyr 'w' påfølgende verdier om gangen 't' der alle 'w' verdiene er vektet.

Hva er et rullende vindu?

Det grunnleggende konseptet med et rullende vindu beregner dataene fra den oppgitte datoen til rullende vindusskift. La oss for eksempel si at en ansatt er i et 6-måneders rullende vindu, det betyr at han får lønnen sin 1. januar hvert år og en annen lønn 1. juli hvert år. Enkelt, det rullende vinduet er relativt til første date og automatisk fremover med den spesifiserte rullende vinduetiden, i vårt eksempel er det et 6-måneders rullende vindu.

Hvordan fungerer pandas rulling () funksjon med dataaframe?

Rulling () -funksjonen i Python Pandas gir elementene i rullende vindusantall. Ideen om det rullende vinduet i Python er den samme som den generelle ideen om et rullende vindu. Med enkle ord gir brukeren en vektet vindusstørrelse 'W' på en gang og utfører noen matematiske operasjoner på den.

Hva er syntaksen til Pandas Rolling Groupby -funksjon?

Nedenfor kan du finne syntaksen til Pandas Rolling Groupby -funksjon.

Som du kan se, tar Rolling () -funksjonen 8 parametere; Windowsize, minperiod, frekvens, senter, wintype, på, akse og lukket.

Parameteren 'Windowsize' definerer størrelsen på det bevegelige vinduet som er med enkle ord antall ganger en beregning må utføres, og som standard er verdien 1. Parameteren "Minperiod" definerer minimum antall observasjoner som kreves i et definert vindu. Parameteren 'frekvens' definerer frekvensen av dataene før du utfører statistiske beregninger. 'Center' -parameteren definerer etiketten i midten av vinduet.

'Wintype' -parameteren definerer typen vindu. 'ON' -parameteren definerer kolonnen i stedet for indeksen til dataaframet som beregningen av det rullende vinduet må utføres. Den 'lukkede' parameteren definerer hvilket intervall som må lukkes, enten er det lukket på 'verken', 'venstre', 'høyre' eller 'begge' sluttpunkter.

Og til slutt gir 'Axis' -parameteren verdien av aksen i heltall eller strengformat, og som standard er den 0. La oss nå gå videre til eksemplene for å lære hvordan vi inkluderer Rolling () -funksjonen i vår Python -kode og hvordan Rolling () -funksjonen til Pandas i Python fungerer med DataFrame.

Eksempel 1

La oss nå begynne med å lage en enkel DataFrame som vi trenger å bruke i Rolling () -funksjonen. 5 verdier er definert i DataFrame som er 10, 18, 50, 70 og NP.Nan. Etter det vil vi ganske enkelt kalle Rolling () -funksjonen og oppgi vindusstørrelse 3. Her er koden til Pandas Rolling Groupby -funksjon:

Importer pandaer som PD
Importer numpy som NP
df = pd.DataFrame ('Z': [10, 18, 50, 70, NP.nan])
trykk (df.Rulling (3).sum())

Nedenfor er utdataene fra ovennevnte kode. Merk at de første 2 verdiene er NAN mens den tredje verdien er 78, som er summen av de foregående 3 verdiene 10, 18 og 50. Siden vi har gitt vindusstørrelse 3, utførte rullefunksjonen kalkulatoren etter tre vinduer. Den fjerde verdien 138 er summen av tre tidligere verdier som er 18, 50 og 70. Merk at den siste verdien igjen er NAN, det er ikke fordi vindusstørrelsen er utløpt eller noe annet, det er fordi den 5. inngangsverdien er NAN. Så alt som er lagt til nan vil være nan.

Eksempel 2

Vi har sett et enkelt eksempel på Rolling () -funksjonen, la oss nå lage en tidsstempel type DataFrame for å forstå hvordan rulling () -funksjon fungerer på datoen/klokkeslettet for data. Her vil vi bruke den samme DataFrame som vi har laget i forrige eksempel, men nå vil vi legge til indekskolonnen som spesifiserer tidsstempelverdien for hver kolonne. Se den ekstra indekskolonnen i koden nedenfor:

Importer pandaer som PD
Importer numpy som NP
df_time = pd.DataFrame ('B': [10, 18, 50, 70, NP.nan],
indeks = [PD.Timestamp ('20220101 10:00:00'),
PD.Timestamp ('20220101 10:00:01'),
PD.Timestamp ('20220101 10:00:02'),
PD.Timestamp ('20220101 10:00:03'),
PD.Timestamp ('20220101 10:00:04')))
df_time
trykk (df_time.Rulling ('5s').sum())

Etter å ha utført rulling () -funksjonen til tidsstempeldata vil vi få følgende utgang:

Eksempel 3

I dette eksemplet vil vi hjelpe deg å lære hvordan du kan spesifisere minperiod for Rolling () -funksjonen. Som diskutert ovenfor, definerer minperiodparameteren for rulling () -funksjonen minimum antall observasjoner som kreves for å utføre den matematiske operasjonen. Her beregner vi igjen summen med rullende vindusstørrelse 3 og minperiod 1. Se koden nedenfor:

Importer pandaer som PD
Importer numpy som NP
df = pd.DataFrame ('Z': [10, 18, 50, 70, NP.nan])
trykk (df.Rulling (2, min_perioder = 1).sum())

Her er utdataene fra koden gitt ovenfor.

Konklusjon

I denne artikkelen har vi demonstrert bruken av Rolling () -funksjonen i Python. Ved hjelp av enkle eksempler har vi observert hvordan Rolling () -funksjonen fungerer med DataFrames. Alle de ovennevnte kodene kan implementeres på en hvilken som helst kompilator av Python.