Pandas mellom datoer

Pandas mellom datoer
“Formatet på datoer varierer i forskjellige regioner (Yyyy-DD-MM, YYYY-MM-DD, DD/MM/YY, etc.). Å jobbe med slike strenger som inneholder datoer og tid er utfordrende. Pandas “to_dateTime ()” -funksjonen kan brukes til å endre dato eller klokkeslett for "String" -datatypen til DateTime64. Datatypen "DateTime64" hjelper til med utvinning av tids- og datoegenskaper som spenner fra "år" til "mikrosekunder". For å filtrere radene basert på datoer, vil vi konvertere datoenes datatype til DateTime64 i vår DataFrame. Deretter vil en filtertilstand bli spesifisert ved hjelp av Pandas -pakken DataFrame.spørring [] og dataaframe.loc [] funksjoner. Til slutt vil vi skaffe oss den filtrerte DataFrame, som er undergruppen av data.”

Hvordan velge eller filtrere datobaserte rader med DataFrame i pandaer?

Først vil vi konvertere datatypen til databaserte verdier til DateTime64; Deretter vil vi bruke andre metoder (som Datafame.loc []) for å velge eller filtrere datobaserte mellom to datoer. Opprinnelig kan datatype gis eller representeres på en rekke måter, som strenger, NP.DateTime64, og DateTime.dato tid. Ved å bruke PD.Til DateTime () -metode i pandaer kan vi manipulere datoer ved å konvertere datoen DataType til DateTime64 -format.

Syntaks:


Parametere:

arg: Det kan være float, liste, streng, heltall eller dataaframe som skal konverteres til datetime.

Feil: Verdien kan spesifiseres som heve, tvinge eller ignorere. Når en ordbok som en kartlegg. Satt til å ignorere som standard.

DayFirst: Sett som usant som standard. Hvis det er sant, plasserer den boolske verdien DayFirst.

ÅRFIRST: Hvis sant, plasserer den boolske verdien året første. False er standardverdien;

UTC: Avgrenset verdi. Vis gjeldende tidsprimær tidsstandard (UTC) hvis sant.

format: Årets posisjon, måned og dagen bestemmes via en strenginngang. Det er ingen som standard

infer_datetime_formatbool: Hvis sant og ingen format er spesifisert, kan du prøve å utlede dato/klokkeslett -format fra det første elementet som ikke er null. False er standardverdien.

I opplæringseksemplene vil vi bruke følgende strategi for å velge informasjon fra de datobaserte radene i DataFrame mellom to datoer:

    • Importer pandasmoduler.
    • Opprette eller laste inn data for å opprette et dataaframe.
    • Lag en dataaframe.
    • Konverter datatypen på kolonnene med datoer til datetime64.
    • Spesifiser en start- og sluttdato.
    • Oppdatert DataFrame vil bli lagret og vist etter bruk av et filter.
    • Vis DataFrame.

Eksempel 1: Filterdatoer-baserte verdier ved hjelp av DataFrame.loc [] funksjon

Vi vil filtrere datobaserte data ved å bruke “DataFrame.loc [] ”-funksjon. For å få tilgang til en gruppe kolonner og rader med en datafram gjennom navnet på kolonner, indekser eller en boolsk matrise, brukes "loc []" -funksjonen. Det betingede uttrykket i LOC [] -variabelen i dette eksemplet returnerer en boolsk matrise med en sann verdi hvis raden tilfredsstiller tilstanden og en falsk hvis tilstanden ikke tilfredsstiller. Bare de radene med sanne verdier returneres ved å bruke loc [] -metoden. La oss lage en dataaframe først for å forstå dette eksemplet tydelig.


Vi har laget en dataaframe ved å passere en ordbok inne i PD.DataFrame () -funksjon etter import av Pandas -modulene. I vår DataFrame er det to kolonner hvis navn er spesifisert som "oppgaver" og "dato". Kolonnen "Oppgave" består av heltalldata (3, 2, 6, 1, 4, 5, 2, 1, 3, 4), og "dato" -kolonnen består av datoer-baserte strengverdier ("2022-01- 05 ”,“ 2022-01-15 ”,“ 2022-02-01 ”,“ 2022-02-10 ”,“ 2022-03-20 ”,“ 2022-03-30 ”,“ 2022-04-12 ” , “2022-04-24”, “2022-05-15”, “2022-05-25”). For å se vår DataFrame, bruker vi PRINT () -funksjonen.


La oss nå sjekke datatypen på kolonnene våre ved å bruke attributtet “dtypes”.


Som det kan legges merke til, er datatypen på "oppgavene" -kolonnen INT64, men "Dato" -kolonnen har datatypen til "Objekt". Som nevnt ovenfor, må vi konvertere datatypen til kolonnene med datoer til DateTime64. For å endre datatypen på "datoer" -kolonnen, vil TO_DateTime () -metoden bli brukt.


Vi har bestått "Dato" -kolonnen i TO_DATETIME () -funksjonen som et argument og spesifisert formatet som år med år. Etter å ha endret datatypen til "Dato" -kolonnen, tildelte vi den til "Dato" -kolonnen i vår "DF" DataFrame. Ved å bruke DTYPES -attributtet, kan vi bekrefte om datatypen endres til “DateTime64” eller ikke.


Ettersom datatypen er endret nå, kan vi bruke LOC [] -metoden for å filtrere de nødvendige radene.


Inne i DF.Loc [] metode, vi har laget et uttrykk/tilstand for å velge bare de radene der datoen er større enn eller lik “22-02-01” og mindre enn “2022-04-24”. Så radene fra indeks 2 til 6 er tilfredsstilt med tilstanden som vist i utgangen.

Eksempel 2: Filterdatoer-baserte verdier ved hjelp av forskjellige attributter med DataFrame.loc [] funksjon

I eksempel nr. 1 filtrerte vi de datobaserte radene ved å bruke LOC [] -funksjonen. I dette eksemplet vil vi bruke forskjellige attributter med LOC [] -funksjonen for å velge spesifikke datobaserte rader.


Det første trinnet vil være det samme; Vi konverterer datatypen til "Dato" -kolonnen til "DateTime64" ved å bruke TO_DateTime () -funksjonen.


Etter å ha endret datatypen til “DateTime64”, vil vi bruke LOC [] -funksjonen til å velge rader mellom to datoer.


Vi opprettet en betingelse for å velge dataene innen datoene som er lik eller større enn “2022-04-10” og mindre enn “2022-06-15”. Vi fikk fire rader med datoer (“2022-04-12”, “2022-04-24”, “2022-05-15”, og “2022-05-25”) som tilfredsstilte tilstanden. Vi kan ytterligere filtrere utdataene til en bestemt tid, dato, uke, måned, år osv., ved å bruke datetime “.DT ”attributt med DataFrame.loc [] metode. La oss anta at vi må velge raden som har datoen “15” fra den nylig genererte utdataene fra “DF” DataFrame med fire rader.


Vi spesifiserte DT.dag == 15 for å hente dataene som er lagret i raden med datoen “15”. Vi fikk “Index 8” -raden som utdata fordi datoen er 15 i den raden. La oss nå bruke “.Mellom ”attributt til å velge spesifikke rader mellom to datoer i vår DataFrame (opprettet i eksempel nr. 1).


Ved å bruke “.Mellom () ”-funksjon spesifiserte vi datoene mellom“ 2022-01-15 ”og“ 2022-03-30 ”for å generere utgangen.

Eksempel nr. 3: Filterdatoer-baserte verdier ved å bruke .spørring () funksjon

Nå får vi se hvordan DataFrame.spørring () -funksjonen fungerer for å velge spesifikke datobaserte rader fra DataFrame. I dette eksemplet vil den samme “DF” DataFrame bli brukt, som vi opprettet i eksempel nr. 1. Først vil vi konvertere datatypen til "Dato" -kolonnen til "DateTime64" som vi har gjort i tidligere eksempler.


Nå vil vi bruke spørringen () -funksjonen for å velge rader mellom datoer.


Tilstanden inne i spørringen (), som vist ovenfor, er å velge data innen datoene som er lik eller større enn “2021-12-30” og mindre enn “2022-01-15”. Som standard settes DataFrame -kolonnene i spørringsnavnet, og gir tilgang til datakolonnen uten å spesifisere navnet på kolonnen.


Dette er radene som har data innen datoene som tilfredsstiller tilstanden.

Konklusjon

I denne opplæringen har vi diskutert hvordan du velger de datobaserte radene mellom datoer i pandaer. Vi har sett syntaksen til pandaene.To_DateTime () -funksjonen, som vi brukte for å konvertere datatypen til den dato-baserte kolonnen til DateTime64. Vi implementerte eksempler for å lære deg hvordan du bruker DataFrame.loc [] funksjon, hvordan bruke forskjellige attributter med DataFrame.loc [] funksjon, og hvordan du bruker .spørring () Funksjon for å velge dataene fra datobaserte rader mellom to datoer.