Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Interpolatie is een methode voor het genereren van punten tussen gegeven punten. In deze zelfstudie laat ik zien hoe je interpolatie kunt gebruiken bij het omgaan met ontbrekende gegevens in Python. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.
In Python is interpolatie een techniek die meestal wordt gebruikt om ontbrekende waarden in het dataframe of de reeks toe te rekenen tijdens het voorbewerken van gegevens. Ik zal laten zien hoe u deze methode kunt gebruiken om ontbrekende gegevenspunten in uw gegevens te schatten met behulp van Python in LuckyTemplates.
Als we naar onze oorspronkelijke gegevens hieronder kijken die in de bovenste grafiek worden weergegeven, kunnen we zien dat er veel gaten of ontbrekende gegevens zijn die we niet kunnen weergeven omdat er niets is. Maar in de onderste grafiek kunnen we zien dat we een schatting hebben gemaakt om erachter te komen hoe die gegevens eruit zouden kunnen zien. De feitelijke gegevens worden in lichtblauw weergegeven, terwijl de geïnterpoleerde gegevens in donkerblauw worden weergegeven.
Er zijn een paar verschillende soorten schattingen die we gaan doen. We gaan een lineaire interpolatie doen, een dichtstbijzijnde interpolatie en vervolgens een gewogen tijdinterpolatie. Elk van deze gaat ons iets andere resultaten opleveren.
In het bovenstaande voorbeeld wordt de gewogen tijdsinterpolatie gebruikt, die er bijna hetzelfde uitziet als de lineaire interpolatie, met de uitzondering dat deze wordt gewogen op basis van de dagen. Lineair schatte de gegevens op basis van de helling tussen deze twee gegevenspunten. Dichtstbijzijnde interpolatie heeft een vlakkere schatting, zoals u hieronder kunt zien, waarbij we naar de dichtstbijzijnde waarde hebben gekeken en konden schatten wat er tussen die twee bestaat.
Dus laten we naar een Jupyter-notebook springen en dat binnenhalen.
Inhoudsopgave
Interpolatie gebruiken bij het verwerken van ontbrekende gegevens in Python
Je zou de Scripteditor kunnen gebruiken om alles uit te schrijven, maar dat is eenvoudiger. U krijgt meer feedback in uw Jupyter-notebook. Dus laten we documenteren wat we doen. Wanneer we dit kopiëren en plakken in onze Python Script Editor, zal het heel schoon en duidelijk zijn.
Laten we de bibliotheken importeren die we willen, en we gaan Panda's importeren en opslaan als een variabele PD. We gaan Numpy importeren en opslaan als de variabele NP. Pandas is een bibliotheek voor gegevensmanipulatie, terwijl Numpy ons ook in staat stelt om gegevens te manipuleren en ons wat lineaire algebra geeft.
We willen onze dataset binnenhalen en die gaan we opslaan als een variabele df . En we gaan gewoon de Pandas-variabele ( pd ) gebruiken en de functie read.csv gebruiken . Vervolgens gaan we kopiëren en plakken waar dat bestand op onze pc staat. De mijne staat in mijn werkmap, dus ik hoef alleen maar machines.csv te schrijven en dat tussen haakjes in te kapselen.
En laten we onze dataset eens bekijken door alleen de variabele df te gebruiken. Je kunt zien dat dit gaat van 1 2022 tot de 25e. Het zijn opeenvolgende dagen tot de 15e, en dan ontbreken er vier dagen op de 19e, en dan ontbreken er drie dagen wanneer we bij de 22e komen, en twee dagen ontbreken op de 25e.
De dagen die worden overgeslagen zijn geen ontbrekende gegevens. Dat zijn gewoon geen gegevens in onze dataset. Waar we ons mee gaan bezighouden, zijn ontbrekende gegevens, die u weergegeven ziet met deze NaN- of geen-waarden.
Nu we onze dataset hebben, laten we onze verschillende soorten interpretaties gebruiken en ze opslaan als verschillende kolommen. We kunnen zien dat we object hebben , dat wordt weergegeven door een tekst, en we hebben ook een vlotter .
Ik ga de kolom Datum isoleren door haakjesnotatie te gebruiken. Vervolgens ga ik gelijken gebruiken om dit toe te wijzen. Ik ga de pd- variabele gebruiken en dan gebruik ik alleen de functie to_datetime. En dan sluit ik die functie af met de haakjes en voeg ik de kolom Datum toe.
We kunnen zien dat we nu de datum als het juiste gegevenstype hebben.
We hebben hier een index, die wordt aangegeven door de nummers 1 tot 18. Als we Lineair doen, worden deze nummers gebruikt om een lineaire verbinding te maken tussen de bestaande gegevenspunten. Maar we willen ook een tijdgewogen interpolatie kunnen gebruiken, die naar de tijd kijkt en ons de resultaten geeft op basis van de werkelijke dagen. We willen de kolom Datum instellen als de index, zodat we deze kunnen gebruiken.
Ik ga mijn data frame (df) variabele gebruiken, en doe set_index. We moeten een parameter met de naam inplace doorgeven om er zeker van te zijn dat deze permanent wordt doorgegeven. Dus ik gebruik inplace is gelijk aan waar, en dan druk ik op shift en enter. En daarmee kun je zien dat de numerieke index is verdwenen en dat we een Datetime-index hebben.
Nu kunnen we beginnen met het bouwen van die kolommen die we willen. Laten we een kolom bouwen waarin we het dichtstbijzijnde gegevenspunt interpoleren, waardoor deze ontbrekende waarden worden opgevuld met de dichtstbijzijnde waarde. We willen een kolom maken met de naam users_nearest , en we willen die toewijzen aan een kolom Gebruikers .
We willen een kolom maken met de naam user_nearest , en we willen die toewijzen aan een gebruikerskolom. En nu we die kolom geïsoleerd hebben, kunnen we de interpolatiefunctie gebruiken en kunnen we op shift-tab drukken om te zien welke parameters deze functie nodig heeft. Er zijn veel verschillende soorten methodes.
Je kunt zien dat de standaard lineair is, en als je wilt dat het alle verschillende methoden ziet, zit hier informatie in. Je kunt dit helemaal openen en er is hier veel informatie die je veel inzicht zal geven. Maar het is altijd beter om naar de Pandas-site te gaan en gewoon te zien wat al de verschillende soorten interpolaties zijn.
Nu gaan we de methode doorgeven die we willen, en we gaan de Nearest Interpolation-methode gebruiken. Het enige dat we hoeven te doen is dit uit te voeren en u kunt zien dat er een kolom is gemaakt. Als we naar die specifieke regel kijken, kunnen we dat zien als een ontbrekende waarde. En je kunt zien dat het is geïnterpoleerd waar het de dichtstbijzijnde waarde heeft genomen en hier heeft toegevoegd. Zoals u kunt zien, hebben we geen ontbrekende waarden meer voor die specifieke rij.
Laten we dit nu twee keer kopiëren en de naam van deze kolommen wijzigen in user_linear en user_time . We zullen ook de methoden aanpassen aan onze rubrieken. We kunnen verschuiven en invoeren, en je kunt zien dat we drie kolommen hebben gemaakt op basis van verschillende soorten interpolatiemethoden.
Vervolgens wil ik nog een specifieke kolom maken waarmee we kunnen aangeven welke leeg zijn, zoals een vlag in onze gegevens. Daarvoor gaan we Numpy gebruiken.
Dus we gaan gewoon een nieuwe kolom maken met de naam df , en dan gaan we het vlag noemen. We gaan dat toewijzen met dat gelijkteken. Vervolgens gaan we np gebruiken , wat onze Numpy-variabele is. En dan gaan we de where- functie gebruiken, wat een voorwaardelijke functie is. We stellen de voorwaarde in en dan krijgen we een voorbeeld voor waar en onwaar. We gebruiken dubbele gelijken, wat gelijk is in Python. Als het waar is, willen we zeggen Missing Data . De andere optie is Data .
We kunnen die vlag gebruiken in onze visual. Als we eenmaal in je notitieblok zijn, ga je naar transformeren en druk je op Python-script uitvoeren. Nu zijn er een paar verschillende stappen. We moeten dit laten werken binnen de LuckyTemplates -omgeving.
We hebben al onze codes hier en we moeten nog een paar stappen toevoegen. Ten eerste, als we te maken hebben met datum-tijd, moeten we een foutparameter toevoegen die zegt dat als we fouten hebben, je deze kunt afdwingen of proberen te wijzigen. Dus ik ga hier fouten gelijk zetten , en dan haakjes forceren . Vervolgens moeten we de datasetvariabele opnieuw toewijzen als df.
Als we op OK klikken, krijgen we nog een foutmelding en dit is wat we moeten doen om dit op te lossen. Als we onze stappen doorlopen, moeten we onze datum niet laten opmaken. We laten Python werken met de datums omdat datums uniek zijn voor elk platform. Het eerste dat we moeten doen, is Changed Type verwijderen .
We hebben de kolom Datum niet omdat de datum de index is. Dus gaan we terug naar ons Python-script en resetten we gewoon onze index, df.reset_index . We zeggen dat we het willen resetten naar de omleiding van de datumkolom in dat haakje, en dan willen we doen inplace = true .
En nu hebben we de datum en zijn al onze andere gegevenstypen compleet.
Als we dat in een visual plaatsen, ziet het er zo uit in drie verschillende interpolatiemethoden bij het verwerken van ontbrekende gegevens in Python.
Valutakoersen in LuckyTemplates: omgaan met ontbrekende gegevens
Python-scripting in LuckyTemplates-gegevensrapporten
Voorbeeldgegevenssets laden in Python
Conclusie
Je hebt in deze zelfstudie drie methoden van interpolatie geleerd bij het afhandelen van ontbrekende gegevens in Python . We hebben de lineaire, dichtstbijzijnde en gewogen tijdinterpolatiemethoden besproken.
Ik hoop dat je dit nuttig vindt en toepast in je eigen werk. Je kunt de volledige video-tutorial hieronder bekijken voor meer details en de onderstaande links bekijken voor meer gerelateerde inhoud over het omgaan met ontbrekende gegevens in Python.
Al het beste!
Gaelim
Wat is zelf in Python: voorbeelden uit de echte wereld
Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.
In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.
Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.
Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.
Wat is LuckyTemplates Gateway? Alles wat u moet weten