Vad är Power Query & M Language: En detaljerad översikt
Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.
Interpolation är en metod för att generera punkter mellan givna punkter. I den här handledningen ska jag visa hur du kan använda Interpolation för att hantera saknade data i Python. Du kan se hela videon av denna handledning längst ner på den här bloggen.
I Python är interpolation en teknik som oftast används för att imputera saknade värden i dataramen eller serien medan data förbehandlas. Jag ska visa hur du kan använda den här metoden för att uppskatta saknade datapunkter i din data med hjälp av LuckyTemplates.
Om vi tittar på vår ursprungliga data här nedan, som är representerad i den översta grafen, kan vi se att det finns många hål eller saknade data som vi inte kan rita eftersom det inte finns något där. Men i den nedre grafen kan vi se att vi har gjort en uppskattning för att ta reda på hur dessa data kan se ut. De faktiska uppgifterna representeras i ljusblått, medan de interpolerade uppgifterna är i mörkblått.
Det finns ett par olika typer av uppskattningar vi kommer att göra. Vi kommer att göra en linjär interpolation, en närmaste interpolation och sedan en viktad tidsinterpolation. Var och en av dessa kommer att ge oss lite olika resultat.
Exemplet ovan använder den vägda tidsinterpolationen, som ser nästan likadan ut som den linjära interpolationen, med undantaget att denna viktas utifrån dagarna. Linear uppskattade data baserat på lutningen mellan dessa två datapunkter. Nearest Interpolation har en plattare typ av uppskattning, som du kan se nedan, där vi tittade på det närmaste värdet och kunde uppskatta vad som finns mellan dessa två.
Så låt oss hoppa över till en Jupyter-anteckningsbok och ta in den.
Innehållsförteckning
Hur man använder interpolation för att hantera saknade data i Python
Du kan använda Script Editor för att skriva ut allt, men det är enklare. Du får mer feedback i din Jupyter-anteckningsbok. Så låt oss dokumentera vad vi gör. När vi kopierar och klistrar in detta i vår Python Script Editor blir det väldigt rent och tydligt.
Låt oss importera de bibliotek vi vill ha, och vi kommer att importera pandor och spara dem som en variabel PD. Vi kommer att importera Numpy och spara den som variabeln NP. Pandas är ett datamanipuleringsbibliotek, medan Numpy tillåter oss att göra datamanipulation också och ger oss lite linjär algebra.
Vi vill ta in vår datauppsättning, och vi kommer att spara den som en variabel df . Och vi kommer bara att använda Pandas-variabeln ( pd ) och använda read.csv -funktionen. Sedan ska vi kopiera och klistra in där den filen finns på vår PC. Min finns i min arbetskatalog, så allt jag behöver göra är att skriva machines.csv och kapsla in det inom parentes.
Och låt oss ta en titt på vår datauppsättning bara genom att använda variabeln df. Du kan se att detta går från den 1:a 2022, hela vägen till den 25:e. Det är på varandra följande dagar ända till den 15:e, och sedan saknas det fyra dagar den 19:e, och sedan saknas det tre dagar när vi kommer till den 22:e, och två dagar som saknas den 25:e.
Dagarna som hoppas över saknar inte data. Det är bara inte data i vår datauppsättning. Det vi kommer att ta itu med är data som saknas, som du ser representerade med dessa NaN- värden eller inga.
Nu när vi har vår datauppsättning i, låt oss använda våra olika typer av tolkning och spara dem som olika kolumner. Vi kan se att vi har objekt , som representeras av en text, och vi har också en float .
Jag kommer att isolera kolumnen Datum genom att använda parentesnotation. Sedan kommer jag att använda lika för att tilldela detta. Jag ska använda pd -variabeln och sedan använder jag bara funktionen to_datetime. Och sedan stänger jag av den funktionen med parentesen och lägger till i kolumnen Datum.
Vi kan se att nu har vi Datum som rätt datatyp.
Vi har ett index här, vilket indikeras av siffrorna 1 till 18. När vi gör linjärt kommer det att använda dessa siffror för att skapa en linjär koppling mellan de befintliga datapunkterna. Men vi vill också kunna använda en Time-weighted Interpolation, som tittar på tiden och ger oss resultaten baserat på de faktiska dagarna. Vi vill ställa in datumkolumnen som index, så att vi kan använda den.
Jag ska använda min dataram-variabel (df) och göra set_index. Vi måste skicka in en parameter som heter inplace för att se till att den skickas in permanent. Så jag kommer att använda inplace är lika med sant, och sedan ska jag trycka på shift och enter. Och med det kan du se att det numeriska indexet försvann, och vi har ett Datetime-index.
Nu kan vi börja bygga de kolumner som vi vill ha. Låt oss bygga en kolumn där vi interpolerar den närmaste datapunkten, som kommer att fylla dessa saknade värden med det närmaste värdet. Vi vill skapa en kolumn som heter users_nearest , och vi vill tilldela den till en Användare- kolumn.
Vi vill skapa en kolumn som heter user_nearest , och vi vill tilldela den till en användarkolumn. Och nu när vi har den kolumnen isolerad kan vi använda funktion och vi kan trycka på shift-tab för att se vilka parametrar den här funktionen tar. Det finns många olika typer av metoder.
Du kan se att standarden är linjär, och om du vill att den ska se alla olika metoder finns det information i detta. Du kan öppna detta hela vägen upp och det finns mycket information här som kommer att ge dig mycket insikt. Men det är alltid bättre att gå ner till Pandas webbplats och bara se vad alla olika typer av interpolationer är.
Nu ska vi skicka in metoden som vi vill ha, och vi kommer att använda metoden Nearest Interpolation. Allt vi behöver göra är att köra detta, och du kan se att en kolumn skapas. Om vi tittar på just den linjen kan vi se det som ett saknat värde. Och du kan se att det har interpolerats där det har tagit det närmaste värdet och lagt till det här. Som du kan se saknar vi inga värden längre för just den raden.
Nu, låt oss kopiera detta två gånger, och låt oss ändra namnet på dessa kolumner till user_linear och user_time . Vi kommer också att ändra metoderna för att matcha våra rubriker. Vi kan skifta och gå in, och du kan se att vi har skapat tre kolumner baserade på olika typer av interpolationsmetoder.
Därefter vill jag skapa en mer speciell kolumn som låter oss indikera vilka av dessa som är tomma, som en flagga i vår data. Vi kommer att använda Numpy för det.
Så, vi kommer bara att skapa en ny kolumn som heter df , och sedan kommer vi att kalla den flagga. Vi kommer att tilldela det med det likhetstecknet. Sedan kommer vi att använda np , som är vår Numpy-variabel. Och sedan kommer vi att använda where -funktionen, som är en villkorlig funktion. Vi sätter villkoret och sedan får vi ett exempel på sant och falskt. Vi använder dubbel lika, vilket är lika i Python. När det är sant vill vi säga Missing Data . Det andra alternativet är Data .
Vi kan använda den flaggan i vår bild. När vi är i din anteckningsbok, gå över för att transformera och tryck på kör Python-skript. Nu finns det ett par olika steg. Vi måste få detta att fungera inommiljö.
Vi har alla våra koder här och vi måste lägga till några fler steg. Ett, när vi har att göra med datum-tid, måste vi lägga till en felparameter som säger att om vi har några fel kan du tvinga eller försöka ändra det. Så jag kommer att sätta här fel lika , och sedan parentes tvång . Därefter måste vi omtilldela datasetvariabeln som df.
När vi klickar på OK, får vi ett nytt fel, och det här är vad vi behöver göra för att fixa detta. Om vi går igenom våra steg behöver vi inte ha vårt datum formaterat. Vi låter Python arbeta med datumen eftersom datum är unika för varje plattform. Det första vi behöver göra är att bli av med Changed Type .
Vi har inte kolumnen Datum eftersom datumet är indexet. Så vi går tillbaka till vårt Python-skript och sedan återställer vi bara vårt index, df.reset_index . Vi säger att vi vill återställa den till kolumnen Datum förbigå inom den parentesen, och sedan vill vi göra inplace = true .
Och nu har vi datumet och alla våra andra datatyper är klara.
Om vi lägger det i en visualisering så ser det ut så här i tre olika interpolationsmetoder vid hantering av saknad data i Python.
Slutsats
Du har i den här handledningen lärt dig tre metoder för interpolation för att hantera saknad data i. Vi har diskuterat metoderna för linjär, närmaste och viktad tidsinterpolation.
Jag hoppas att du tycker att detta är användbart och tillämpar det i ditt eget arbete. Du kan titta på hela videohandledningen nedan för mer information och kolla in länkarna nedan för mer relaterat innehåll om hantering av saknad data i Python.
Med vänliga hälsningar!
Gaelim
Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.
Lär dig hur du skapar en sidnumrerad rapport, lägger till texter och bilder och sedan exporterar din rapport till olika dokumentformat.
Lär dig hur du använder SharePoint-automatiseringsfunktionen för att skapa arbetsflöden och hjälpa dig att mikrohantera SharePoint-användare, bibliotek och listor.
Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!
Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.
Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.
Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.
Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.
Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.
Låt oss fördjupa oss i Standard LuckyTemplates-teman och granska några av funktionerna som är inbyggda i själva LuckyTemplates Desktop-applikationen.