Hva er Power Query & M Language: En detaljert oversikt
Denne opplæringen gir en oversikt over Power Query Editor og M-språket på LuckyTemplates-skrivebordet.
Interpolasjon er en metode for å generere punkter mellom gitte punkter. I denne opplæringen skal jeg vise hvordan du kan bruke interpolasjon til å håndtere manglende data i Python. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.
I Python er interpolering en teknikk som for det meste brukes til å tilskrive manglende verdier i datarammen eller serien mens data forhåndsprosesseres. Jeg skal demonstrere hvordan du kan bruke denne metoden til å estimere manglende datapunkter i dataene dine ved å bruke LuckyTemplates.
Hvis vi ser på de opprinnelige dataene våre nedenfor som er representert i den øverste grafen, kan vi se at det er mange hull eller manglende data som vi ikke kan tegne fordi det ikke er noe der. Men i den nederste grafen kan vi se at vi har gjort noen estimeringer for å finne ut hvordan disse dataene kan se ut. De faktiske dataene er representert i lyseblått, mens de interpolerte dataene er i mørkeblått.
Det er et par forskjellige typer estimering vi skal gjøre. Vi skal gjøre en lineær interpolasjon, en nærmeste interpolasjon og deretter en vektet tidsinterpolasjon. Hver av disse kommer til å gi oss litt forskjellige resultater.
Eksemplet ovenfor bruker vektet tidsinterpolasjon, som ser nesten likt ut som lineær interpolasjon, med unntak av at denne er vektet basert på dagene. Lineær estimerte dataene basert på helningen mellom disse to datapunktene. Nærmeste interpolasjon har en flatere type estimering, som du kan se nedenfor, der vi så på den nærmeste verdien og var i stand til å estimere hva som eksisterer mellom disse to.
Så la oss hoppe over til en Jupyter-notisbok og ta den inn.
Innholdsfortegnelse
Hvordan bruke interpolasjon til å håndtere manglende data i Python
Du kan bruke Script Editor til å skrive ut alt, men det er enklere. Du får mer tilbakemelding i din Jupyter-notisbok. Så la oss dokumentere hva vi gjør. Når vi kopierer og limer dette over til Python Script Editor, vil det være veldig rent og tydelig.
La oss importere bibliotekene vi ønsker, og vi skal importere pandaer og lagre dem som en variabel PD. Vi skal importere Numpy og lagre den som variabelen NP. Pandas er et datamanipulasjonsbibliotek, mens Numpy lar oss gjøre datamanipulering også og gir oss litt lineær algebra.
Vi ønsker å hente inn datasettet vårt, og vi skal lagre det som en variabel df . Og vi skal bare bruke Pandas-variabelen ( pd ) og bruke read.csv -funksjonen. Deretter skal vi kopiere og lime inn hvor den filen finnes på PC-en vår. Min er i arbeidskatalogen min, så alt jeg trenger å gjøre er å skrive machines.csv og kapsle det inn i parentes.
Og la oss ta en titt på datasettet vårt bare ved å bruke variabelen df. Du kan se at dette går fra 1. 2022, helt til 25. Det er påfølgende dager helt til den 15., og så mangler det fire dager den 19., og så mangler det tre dager når vi kommer til den 22., og to dager mangler den 25..
Dagene som hoppes over mangler ikke data. Det er bare ikke data i datasettet vårt. Det vi skal forholde oss til er manglende data, som du ser representert med disse NaN- verdiene eller ingen.
Nå som vi har vårt datasett, la oss bruke våre forskjellige typer tolkning og lagre dem som forskjellige kolonner. Vi kan se at vi har objekt , som er representert ved en tekst, og vi har også en flyte .
Jeg skal isolere Dato- kolonnen ved å bruke parentesnotasjon. Deretter skal jeg bruke lik for å tilordne dette. Jeg skal bruke pd variabel, og så bruker jeg bare funksjonen to_datetime. Og så lukker jeg den funksjonen med parentesen og legger til i Dato-kolonnen.
Vi kan se at nå har vi Dato som riktig datatype.
Vi har en indeks her, som er indikert med tallene 1 til 18. Når vi gjør Lineær, vil det være å bruke disse tallene for å lage en lineær forbindelse mellom de eksisterende datapunktene. Men vi ønsker også å kunne bruke en Time-weighted Interpolation, som ser på tid og gir oss resultatene basert på de faktiske dagene. Vi ønsker å sette Dato-kolonnen som indeks, slik at vi kan bruke den.
Jeg skal bruke datarammevariabelen (df) og gjøre set_index. Vi må sende inn en parameter kalt inplace for å sikre at den sendes permanent inn. Så jeg skal bruke inplace er lik sant, og så skal jeg trykke shift og enter. Og med det kan du se at den numeriske indeksen forsvant, og vi har en Datetime-indeks.
Nå kan vi begynne å bygge de kolonnene vi ønsker. La oss bygge en kolonne der vi interpolerer det nærmeste datapunktet, som vil fylle disse manglende verdiene med den nærmeste verdien. Vi ønsker å lage en kolonne kalt users_nearest , og vi ønsker å tilordne den til en Users- kolonne.
Vi ønsker å lage en kolonne som heter user_nearest , og vi vil tilordne den til en brukerkolonne. Og nå som vi har den kolonnen isolert, kan vi bruke funksjon, og vi kan trykke shift-tab for å se hvilke parametere denne funksjonen tar. Det finnes mange forskjellige typer metoder.
Du kan se at standarden er lineær, og hvis du vil at den skal se alle de forskjellige metodene, er det informasjon i denne. Du kan åpne dette helt opp, og det er mye informasjon her som vil gi deg mye innsikt. Men det er alltid bedre å gå ned til Pandas-siden og bare se hva alle de forskjellige typene interpolasjoner er.
Nå skal vi sende inn metoden vi ønsker, og vi skal bruke Nearest Interpolation-metoden. Alt vi trenger å gjøre er å kjøre dette, og du kan se at en kolonne er opprettet. Hvis vi ser på den spesielle linjen, kan vi se det som en manglende verdi. Og du kan se at den har blitt interpolert der den har tatt den nærmeste verdien og lagt den til her. Som du kan se, mangler vi ikke lenger verdier for den aktuelle raden.
La oss nå kopiere dette to ganger, og la oss endre navnet på disse kolonnene til user_linear og user_time . Vi vil også endre metodene for å matche overskriftene våre. Vi kan skifte og gå inn, og du kan se at vi har laget tre kolonner basert på ulike typer interpolasjonsmetoder.
Deretter vil jeg lage en mer spesiell kolonne som lar oss indikere hvilke av disse som er tomme, som et flagg i dataene våre. Vi skal bruke Numpy til det.
Så vi skal bare lage en ny kolonne kalt df , og så skal vi kalle den flagg. Vi skal tilordne det med det likhetstegnet. Deretter skal vi bruke np , som er vår Numpy-variabel. Og så skal vi bruke where - funksjonen, som er en betinget funksjon. Vi setter betingelsen og så får vi et eksempel på sant og usant. Vi bruker doble lik, som er lik i Python. Når det er sant, vil vi si Manglende data . Det andre alternativet vil være Data .
Vi kan bruke det flagget i visualiseringen vår. Når vi er i notatboken din, gå over til å transformere, og trykk kjør Python-skript. Nå er det et par forskjellige trinn. Vi må få dette til å fungere innenformiljø.
Vi har alle kodene våre her, og vi må legge til noen flere trinn. En, når vi har å gjøre med dato-klokkeslett, må vi legge til en feilparameter som sier at hvis vi har noen feil, kan du tvinge eller forsøke å endre det. Så jeg skal sette her feil lik , og deretter parentes tvang . Deretter må vi tilordne datasettvariabelen på nytt som df.
Når vi klikker OK, får vi en ny feil, og dette er hva vi må gjøre for å fikse dette. Hvis vi går gjennom trinnene våre, trenger vi ikke ha datoformatert. Vi lar Python jobbe med datoene fordi datoer er unike for hver plattform. Det første vi må gjøre er å bli kvitt Changed Type .
Vi har ikke Dato-kolonnen fordi datoen er indeksen. Så vi går tilbake til Python-skriptet vårt og så tilbakestiller vi indeksen vår, df.reset_index . Vi sier at vi vil tilbakestille den til Dato-kolonnen omgå i den parentesen, og så vil vi gjøre inplace = true .
Og nå har vi datoen og alle våre andre datatyper er fullført.
Hvis vi legger det i en visualisering, er det slik det ser ut i tre forskjellige interpoleringsmetoder ved håndtering av manglende data i Python.
Konklusjon
Du har i denne opplæringen lært tre metoder for interpolasjon for å håndtere manglende data i. Vi har diskutert metodene for lineær, nærmeste og vektet tidsinterpolasjon.
Jeg håper du finner dette nyttig og bruker det i ditt eget arbeid. Du kan se hele videoopplæringen nedenfor for mer informasjon og sjekk ut koblingene nedenfor for mer relatert innhold om håndtering av manglende data i Python.
Beste ønsker!
Gaelim
Denne opplæringen gir en oversikt over Power Query Editor og M-språket på LuckyTemplates-skrivebordet.
Lær hvordan du lager en paginert rapport, legger til tekster og bilder og deretter eksporterer rapporten til ulike dokumentformater.
Lær hvordan du bruker SharePoint-automatiseringsfunksjonen til å lage arbeidsflyter og hjelpe deg med å mikroadministrere SharePoint-brukere, -biblioteker og -lister.
Utvid rapportutviklingsferdighetene dine ved å bli med i en dataanalyseutfordring. Akseleratoren kan hjelpe deg å bli en LuckyTemplates-superbruker!
Lær hvordan du beregner løpende totaler i LuckyTemplates ved hjelp av DAX. Løpende totaler lar deg ikke bli fanget opp i et individuelt resultat.
Forstå konseptet med variabler i DAX i LuckyTemplates og implikasjonene av variabler for hvordan målene dine beregnes.
Lær mer om det tilpassede visuelle bildet kalt LuckyTemplates Slope-diagram, som brukes til å vise økning/reduksjon for en enkelt eller flere beregninger.
Oppdag fargetemaene i LuckyTemplates. Disse er avgjørende for at rapportene og visualiseringene dine skal se ut og fungere sømløst.
Å beregne et gjennomsnitt i LuckyTemplates kan gjøres på mange måter for å gi deg nøyaktig informasjon for bedriftsrapportene dine.
La oss fordype oss i Standard LuckyTemplates-tema, og gjennomgå noen av funksjonene som er innebygd i selve LuckyTemplates Desktop-applikasjonen.