Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Interpolation er en metode til at generere punkter mellem givne punkter. I denne tutorial vil jeg vise, hvordan du kan bruge interpolation til at håndtere manglende data i Python. Du kan se den fulde video af denne tutorial nederst på denne blog.

I Python er interpolation en teknik, der mest bruges til at imputere manglende værdier i datarammen eller serien, mens data forbehandles. Jeg vil demonstrere, hvordan du kan bruge denne metode til at estimere manglende datapunkter i dine data ved hjælp af LuckyTemplates.

Hvis vi ser på vores originale data her nedenfor, som er repræsenteret i den øverste graf, kan vi se, at der er mange huller eller manglende data, som vi ikke kan tegne, fordi der ikke er noget der. Men i den nederste graf kan vi se, at vi har lavet nogle skøn for at finde ud af, hvordan disse data kunne se ud. De faktiske data er repræsenteret i lyseblå, mens de interpolerede data er i mørkeblå.

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Der er et par forskellige typer estimering, vi skal lave. Vi skal lave en lineær interpolation, en nærmeste interpolation og derefter en vægtet tidsinterpolation. Hver af dem vil give os lidt forskellige resultater.

Eksemplet ovenfor bruger den vægtede tidsinterpolation, som ser næsten ud som den lineære interpolation, med den undtagelse, at denne vægtes baseret på dagene. Lineær estimerede dataene baseret på hældningen mellem disse to datapunkter. Nærmeste interpolation har en fladere type estimering, som du kan se nedenfor, hvor vi så på den nærmeste værdi og var i stand til at estimere, hvad der eksisterer mellem disse to.

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Så lad os hoppe over til en Jupyter-notesbog og bringe den ind.

Indholdsfortegnelse

Sådan bruges interpolation til håndtering af manglende data i Python

Du kan bruge Script Editor til at skrive alt ud, men det er nemmere. Du får mere feedback i din Jupyter notesbog. Så lad os dokumentere, hvad vi laver. Når vi kopierer og indsætter dette til vores Python Script Editor, vil det være meget rent og klart.

Lad os importere de biblioteker, vi ønsker, og vi vil importere pandaer og gemme dem som en variabel PD. Vi skal importere Numpy og gemme den som variablen NP. Pandas er et datamanipulationsbibliotek, mens Numpy også giver os mulighed for at udføre datamanipulation og giver os noget lineær algebra.

Vi ønsker at bringe vores datasæt ind, og vi vil gemme det som en variabel df . Og vi skal bare bruge Pandas-variablen ( pd ) og bruge read.csv- funktionen. Derefter skal vi kopiere og indsætte, hvor den fil findes på vores pc. Min er i min arbejdsmappe, så alt jeg skal gøre er at skrive machines.csv og indkapsle det i parentes.

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Og lad os tage et kig på vores datasæt blot ved at bruge variablen df. Du kan se, at dette går fra den 1. i 2022, hele vejen til den 25. Det er sammenhængende dage helt til den 15., og så mangler der fire dage den 19., og så mangler der tre dage, når vi kommer til den 22., og to dage mangler den 25.

De dage, der springes over, mangler ikke data. Det er bare ikke data i vores datasæt. Det, vi skal beskæftige os med, er manglende data, som du ser repræsenteret med disse NaN-værdier eller ingen værdier.

Nu hvor vi har vores datasæt i, lad os bruge vores forskellige typer fortolkning og gemme dem som forskellige kolonner. Vi kan se, at vi har objekt , som er repræsenteret ved en tekst, og vi har også en flyder .

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Jeg vil isolere kolonnen Dato ved at bruge parentesnotation. Så vil jeg bruge lig til at tildele dette. Jeg skal bruge pd variabel, og så bruger jeg bare funktionen to_datetime. Og så lukker jeg den funktion af med parentesen og tilføjer i kolonnen Dato.

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Vi kan se, at nu har vi Datoen som den rigtige datatype.

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Vi har et indeks her, som er angivet med tallene 1 til 18. Når vi laver Lineær, vil det være at bruge disse tal til at skabe en lineær forbindelse mellem de eksisterende datapunkter. Men vi ønsker også at kunne bruge en tidsvægtet interpolation, som ser på tiden og giver os resultaterne baseret på de faktiske dage. Vi ønsker at indstille kolonnen Dato som indeks, så vi kan bruge det.

Jeg vil bruge min dataramme (df) variabel og lave set_index. Vi er nødt til at indsætte en parameter kaldet inplace for at sikre, at den sendes permanent ind. Så jeg vil bruge inplace er lig med sand, og så skal jeg trykke på shift og enter. Og dermed kan du se, at det numeriske indeks forsvandt, og vi har et Datetime-indeks.

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Nu kan vi begynde at bygge de søjler, som vi ønsker. Lad os bygge en kolonne, hvor vi interpolerer det nærmeste datapunkt, som vil udfylde disse manglende værdier med den nærmeste værdi. Vi vil oprette en kolonne kaldet users_nearest , og vi vil tildele den til en brugers kolonne.

Vi vil oprette en kolonne kaldet user_nearest , og vi vil tildele den til en brugerkolonne. Og nu hvor vi har den kolonne isoleret, kan vi bruge funktion, og vi kan trykke på shift-tab for at se, hvilke parametre denne funktion tager. Der er mange forskellige typer metoder.

Du kan se, at standarden er lineær, og hvis du ønsker, at den skal se alle de forskellige metoder, er der information i denne. Du kan åbne dette hele vejen op, og der er en masse information her, som vil give dig en masse indsigt. Men det er altid bedre at gå ned til Pandas websted og bare se, hvad alle de forskellige typer interpolationer er.

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Nu vil vi videregive den metode, vi ønsker, og vi vil bruge Nærmeste Interpolation-metoden. Det eneste, vi skal gøre, er at køre dette, og du kan se, at der er oprettet en kolonne. Hvis vi ser på netop den linje, kan vi se det som en manglende værdi. Og du kan se, at den er blevet interpoleret, hvor den har taget den nærmeste værdi og tilføjet den her. Som du kan se, mangler vi ikke længere værdier for den pågældende række.

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Lad os nu kopiere dette to gange, og lad os ændre navnet på disse kolonner til user_linear og user_time . Vi vil også ændre metoderne, så de passer til vores overskrifter. Vi kan skifte og indtaste, og du kan se, at vi har lavet tre kolonner baseret på forskellige typer interpolationsmetoder.

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Dernæst vil jeg oprette en mere bestemt kolonne, der giver os mulighed for at angive, hvilke af disse der er tomme, som et flag i vores data. Det skal vi bruge Numpy til.

Så vi vil bare oprette en ny kolonne kaldet df , og så vil vi kalde den flag. Vi vil tildele det med det lighedstegn. Så skal vi bruge np , som er vores Numpy-variabel. Og så skal vi bruge where- funktionen, som er en betinget funktion. Vi sætter betingelsen, og så får vi et eksempel på sandt og falsk. Vi bruger dobbelte lig, som er lige i Python. Når det er sandt, vil vi sige Manglende data . Den anden mulighed vil være Data .

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Vi kan bruge det flag i vores visual. Når vi er i din notesbog, skal du gå over for at transformere og trykke på Kør Python-script. Nu er der et par forskellige trin. Vi er nødt til at få det til at fungere inden formiljø.

Vi har alle vores koder her, og vi skal tilføje et par trin mere. For det første, når vi har at gøre med dato-tid, skal vi tilføje en fejlparameter, der siger, at hvis vi har nogen fejl, kan du tvinge eller forsøge at ændre det. Så jeg vil her lægge fejl lige , og så parentes tvang . Dernæst skal vi omtildele datasætvariablen som df.

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Når vi klikker OKAY, får vi endnu en fejl, og det er det, vi skal gøre for at rette op på dette. Hvis vi går over vores trin, skal vi ikke have vores dato formateret. Vi lader Python arbejde med datoerne, fordi datoer er unikke for hver platform. Den første ting, vi skal gøre, er at slippe af med Changed Type .

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Vi har ikke kolonnen Dato, fordi datoen er indekset. Så vi går tilbage til vores Python-script, og så nulstiller vi bare vores indeks, df.reset_index . Vi siger, at vi vil nulstille det til Dato-kolonnen omgå i den parentes, og så vil vi gøre inplace = true .

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Og nu har vi datoen, og alle vores andre datatyper er færdige.

Håndtering af manglende data i Python ved hjælp af interpolationsmetode

Hvis vi sætter det i en visualisering, er det sådan, det ser ud i tre forskellige interpolationsmetoder ved håndtering af manglende data i Python.

Håndtering af manglende data i Python ved hjælp af interpolationsmetode




Konklusion

Du har i dette selvstudium lært tre metoder til interpolation ved håndtering af manglende data i. Vi har diskuteret metoderne til lineær, nærmeste og vægtet tidsinterpolation.

Jeg håber, at du finder dette nyttigt og anvender det i dit eget arbejde. Du kan se den fulde videotutorial nedenfor for flere detaljer og tjek nedenstående links for mere relateret indhold om håndtering af manglende data i Python.

Alt det bedste!

Gaelim


Hvad er Power Query & M Language: En detaljeret oversigt

Hvad er Power Query & M Language: En detaljeret oversigt

Denne vejledning giver et overblik over Power Query Editor og M-sproget inde på LuckyTemplates-skrivebordet.

Opret en sideinddelt rapport: Tilføjelse af tekster og billeder

Opret en sideinddelt rapport: Tilføjelse af tekster og billeder

Lær, hvordan du opretter en sideinddelt rapport, tilføjer tekster og billeder og derefter eksporterer din rapport til forskellige dokumentformater.

SharePoint Automate-funktionen | En introduktion

SharePoint Automate-funktionen | En introduktion

Lær, hvordan du bruger SharePoint-automatiseringsfunktionen til at skabe arbejdsgange og hjælpe dig med at mikrostyre SharePoint-brugere, -biblioteker og -lister.

Løs en dataanalyseudfordring med LuckyTemplates Accelerator

Løs en dataanalyseudfordring med LuckyTemplates Accelerator

Udvid dine rapportudviklingsevner ved at deltage i en dataanalyseudfordring. Acceleratoren kan hjælpe dig med at blive LuckyTemplates-superbruger!

Løbende totaler i LuckyTemplates ved hjælp af DAX

Løbende totaler i LuckyTemplates ved hjælp af DAX

Lær, hvordan du beregner løbende totaler i LuckyTemplates ved hjælp af DAX. Løbende totaler giver dig mulighed for ikke at blive fanget af et individuelt resultat.

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Forstå konceptet med variabler i DAX i LuckyTemplates og betydningen af ​​variabler for, hvordan dine mål beregnes.

LuckyTemplates hældningsdiagram: en oversigt

LuckyTemplates hældningsdiagram: en oversigt

Lær mere om det brugerdefinerede visuelle kaldet LuckyTemplates Slope-diagrammet, som bruges til at vise stigning/fald for en enkelt eller flere metrics.

LuckyTemplates farvetemaer til ensartede visualiseringer

LuckyTemplates farvetemaer til ensartede visualiseringer

Opdag farvetemaerne i LuckyTemplates. Disse er afgørende for, at dine rapporter og visualiseringer kan se ud og fungere problemfrit.

Beregning af gennemsnit i LuckyTemplates: Isolering af resultater på ugedage eller weekender ved hjælp af DAX

Beregning af gennemsnit i LuckyTemplates: Isolering af resultater på ugedage eller weekender ved hjælp af DAX

Beregning af et gennemsnit i LuckyTemplates kan gøres på mange måder for at give dig præcise oplysninger til dine virksomhedsrapporter.

LuckyTemplates tema | LuckyTemplates Desktop Standard Theming

LuckyTemplates tema | LuckyTemplates Desktop Standard Theming

Lad os dykke ned i Standard LuckyTemplates-temaer og gennemgå nogle af de funktioner, der er indbygget i selve LuckyTemplates Desktop-applikationen.