Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
In deze zelfstudie leert u hoe u tijdreeksgegevens kunt resamplen met behulp van Panda's. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken .
Wat is dit idee van resampling? Dit heeft te maken met tijdreeksgegevens en wat we zullen doen is de frequentie wijzigen waarmee die gegevens worden gerapporteerd. Bijvoorbeeld de jaarwaarde wijzigen in maandelijks of wekelijks, of uurgegevens wijzigen in dagelijks. Kortom, we veranderen het niveau in de hiërarchie.
Dit kan om een aantal redenen worden gebruikt, zoals het verkrijgen van betrouwbaardere trends , steekproefomvang en seizoensinvloeden . Bij sommige rapporten zal het logischer zijn als we het ene niveau van de hiërarchie gebruiken in plaats van het andere.
Bovendien kan resampling helpen als u verschillende gegevensbronnen hebt en u tijdreeksgegevens moet samenvoegen. Dit zal ook helpen bij het omgaan met een mismatch in de hiërarchie .
Om dit verder op te splitsen, hebben we downsampling en upsampling.
Downsampling is het verlagen van de rapportagefrequentie . Dit kunnen zaken zijn als het converteren van een seconde naar een uur om minder waarden te hebben of downsampling van maand naar kwartaal.
Aan de andere kant is upsampling het verhogen van de rapportagefrequentie van het maandniveau naar de dag . We zullen hier later meer voorbeelden van hebben.
Inhoudsopgave
Hoe tijdreeksgegevens opnieuw kunnen worden bemonsterd met behulp van panda's
Hoe gaan we dit doen in Panda's?
Allereerst zullen we de index wijzigen in onze tijdreeksgegevenskolom . Vervolgens kunnen we upsamplen met behulp van interpolatie, waarmee de waarden worden ingevuld, en we kunnen downsamplen om op te rollen door de waarden te aggregeren.
Laten we naar Jupyter Notebook Python gaan en dit bekijken met Panda's.
Om te beginnen zullen we Panda's gebruiken door import panda's in te voeren als pd , gevolgd door import seaborn als sns om het te visualiseren, en matplotlib.pyplot te importeren als plt om de Seaborn-visualisatie aan te passen .
Het volgende dat u moet doen, is de gegevens ophalen van vega_datasets import data . Het is een leuke plek om voorbeeldbronnen te krijgen. We gaan ook sp = data.sp500 ( ) en sp.head ( ) bibliotheek krijgen .
Dit zijn onze gegevens tot nu toe. We hebben de dagelijkse opbrengsten en prijs voor elke dag.
Typ sp.set_index(['date'], inplace=True) om de kolom index op datum in te stellen en roep sp.head opnieuw aan.
Upsampling gebruiken om waarden te krijgen
Laten we dan, om meer waarden te hebben, upsampling gebruiken. Aangezien we de gegevens voor elke dag hebben, kunnen we tot op het uur gaan door de eenvoudigste functie te gebruiken, namelijk sp [['prijs']]. resample ('H').ffill ( ) en voer het vervolgens uit. H staat voor uur, M voor maand, D voor dag, enzovoort. U kunt hier meer over leren in de documentatie van Panda's .
Zoals we kunnen zien, is de prijs op 1 januari om middernacht 1394,46, hetzelfde als de daaropvolgende uren van 01:00 uur tot 04:00 uur. Een ander voorbeeld is op 2 januari, waar de slotkoers 1366,42 is.
Er zijn andere manieren om dit te doen, zelfs als de waarde niet beschikbaar is op uurniveau. Er zijn ook meer geavanceerde manieren dan alleen een voorwaartse vulling . Wat we in ons voorbeeld hebben gedaan, is de basismanier om upsampling-interpolatie uit te voeren.
Laten we vervolgens naar downsampling gaan door avg_month = sp [['price]].resample ('M').mean ( ) in te typen , vervolgens avg_month.head ( ) en voer het uit om te controleren.
Zoals geïllustreerd, kunnen we de laatste dag van elke maand en de gemiddelde prijs zien. We kunnen de steekproeven verkleinen om minder waarden te hebben, of wat we downsizing noemen.
Om dit te visualiseren, typen we opnieuw de getekende dimensies. Daarna gevolgd door sns.lineplot . De lijnplot werkt beter met een langere X-as, terwijl de Y-waarde de gemiddelde maandprijs is.
Laten we dit uitvoeren om de gemiddelde prijs voor de geplotte maand te zien.
Nogmaals, er zijn veel verschillende manieren waarop we dit kunnen doen. Als we bijvoorbeeld de laagste prijs per kwartaal willen weten, hoeven we alleen maar quarter_low in te typen en vervolgens quarter_low.head om het uit te voeren.
Dus daar kunnen we nu de laagste kwartaalwaarde zien die in elk kwartaal is gevonden. Zo doe je een resample.
Omgaan met ontbrekende gegevens in Python met behulp van de interpolatiemethode
MultiIndex in Panda's voor
gegevenssets op meerdere niveaus of hiërarchische gegevens in Panda's met ProfileReport | Python in LuckyTemplates
Conclusie
Als klap op de vuurpijl is Pandas echt gebouwd voor resampling en tijdreeksgegevens . Als u aan tijdreeksgegevens werkt en verschillende granulariteiten heeft, kan resampling zeer nuttig zijn.
Zorg er bovendien voor dat u de Panda's-documentatie over de resample-methode leest om veel verschillende manieren te leren om dit te doen. We hebben naar de basis gekeken, maar je kunt dingen doen zoals tweewekelijks, de laatste werkdag van de maand en meer opties voor resampling.
Al het beste,
Georg Berg
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