Tidsseriedata i pandor

I den här handledningen kommer du att lära dig hur du samplar om tidsseriedata med Pandas. Du kan se hela videon av denna handledning längst ner på den här bloggen .

Vad är denna idé med omsampling? Detta är relaterat till tidsseriedata och vad vi kommer att göra är att ändra frekvensen med vilken data rapporteras. Till exempel, ändra årsvärde till månadsvis eller veckovis, eller ändra timdata till dagliga. Kort sagt, vi ändrar nivån i hierarkin.

Detta kan användas av ett antal skäl som att få mer tillförlitliga trender , urvalsstorlekar och säsongsvariationer . I vissa rapporter är det mer meningsfullt om vi använder någon nivå av hierarkin mot en annan.

Dessutom kan omsampling hjälpa om du har olika datakällor och du behöver utföra sammanfogning av tidsseriedata. Detta kommer också att hjälpa när man hanterar en missmatchning i .

Tidsseriedata i pandor

För att bryta ner detta ytterligare har vi nedsampling och uppsampling.

Nedsampling är att minska rapporteringsfrekvensen . Det kan vara saker som att konvertera från en sekund till en timme för att få färre värden eller nedsampling månad till kvartal.

Å andra sidan är uppsampling för att öka rapporteringsfrekvensen från månadsnivå ner till dagen . Vi kommer att ha fler exempel på detta senare.

Tidsseriedata i pandor

Innehållsförteckning

Hur man omsamplar tidsseriedata med pandor

Hur ska vi göra detta i Pandas?

Först och främst kommer vi att ändra . Sedan kan vi upsampla med hjälp av interpolation, som kommer att fylla i värdena, och vi kan downsampla för att rulla upp genom att aggregera värdena.

Tidsseriedata i pandor

Låt oss gå över till Jupyter Notebook Python och kolla upp det här med Pandas.

Till att börja med kommer vi att använda Pandas genom att skriva in import pandas som pd , följt av import seaborn som sns för att visualisera det, och importera matplotlib.pyplot som plt för att anpassa .

Nästa sak att göra är att hämta data från vega_datasets importdata . Det är ett trevligt ställe att få provkällor. Vi kommer också att få sp = data.sp500 ( ) och sp.head ( ) library .

Tidsseriedata i pandor

Här är vår data hittills. Vi har de dagliga returerna och priset för varje dag.

Tidsseriedata i pandor

För att ställa in kolumnen för index till datum, skriv in sp.set_index(['date'], inplace=True) och anrop sp.head igen.

Tidsseriedata i pandor

Använda uppsampling för att få värden

Sedan, för att få fler värden, låt oss använda uppsampling. Eftersom vi har data för varje dag kan vi gå ner till timmen genom att använda den enklaste funktionen som är sp [['pris']]. resample ('H').ffill ( ) , kör det sedan. H står för timme, M för månad, D för dagen och så vidare. Du kan lära dig mer om detta i Pandas dokumentation .

Som vi kan se, den 1 januari vid midnatt, är priset 1394,46, samma som de efterföljande timmarna från 01:00 till 04:00. Ett annat exempel är den 2 januari, där slutkursen är 1366,42.

Tidsseriedata i pandor

Det finns andra sätt att göra detta även om värdet inte är tillgängligt på timnivå. Det finns också mer sofistikerade sätt än att bara göra en framåtfyllning . För vårt exempel är det vi gjorde det grundläggande sättet att göra uppsamplingsinterpolering.

Låt oss sedan gå till nedsampling genom att skriva in avg_month = sp [['price]].resample ('M').mean ( ) , sedan avg_month.head ( ) och kör det för att kontrollera.

Som illustreras kan vi se den sista dagen i varje månad och det genomsnittliga priset. Vi kan minska proverna för att få färre värden, eller vad vi kallar neddragning.

Tidsseriedata i pandor

För att visualisera detta, låt oss skriva om de mått som ritas. Sedan följt av sns.lineplot . Linjediagrammet fungerar bättre med en längre X-axel, medan Y-värdet är det genomsnittliga månadspriset.

Låt oss köra detta för att se det genomsnittliga priset för månaden.

Tidsseriedata i pandor

Återigen, det finns många olika sätt vi kan göra detta på. Om vi ​​till exempel vill veta det lägsta priset per kvartal behöver vi bara skriva in quarter_low och sedan quarter_low.head för att köra det.

Så där kan vi nu se det kvartalsvisa lägsta värdet som finns i varje kvartal. Så här gör du ett omprov.

Tidsseriedata i pandor




Slutsats

För att avsluta det är Pandas verkligen byggd för omsampling och tidsseriedata . Om du arbetar med tidsseriedata och har olika granulariteter kan omsampling vara till stor hjälp.

Se dessutom till att läsa Pandas dokumentation om omsamplingsmetoden för att lära dig många olika sätt att göra detta. Vi tittade på de grundläggande, men du kan göra saker som varannan vecka, den sista arbetsdagen i månaden och fler alternativ för omsampling.

Med vänliga hälsningar,

George Mount


Skapa en datumtabell i LuckyTemplates

Skapa en datumtabell i LuckyTemplates

Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.

LuckyTemplates mobilrapporteringstips och tekniker

LuckyTemplates mobilrapporteringstips och tekniker

Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.

Professional Service Analytics-rapporter i LuckyTemplates

Professional Service Analytics-rapporter i LuckyTemplates

I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.

Vanliga SQL-funktioner: En översikt

Vanliga SQL-funktioner: En översikt

Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.

LuckyTemplates Skapa mall: Guide och tips

LuckyTemplates Skapa mall: Guide och tips

I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.

Fältparametrar och små multiplar i LuckyTemplates

Fältparametrar och små multiplar i LuckyTemplates

I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.

LuckyTemplates Rank och anpassad gruppering

LuckyTemplates Rank och anpassad gruppering

I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.