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.
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 .
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.
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.
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 .
Här är vår data hittills. Vi har de dagliga returerna och priset för varje dag.
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.
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.
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.
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.
Å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.
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
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.
Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.
I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.
Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.
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.
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.
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.
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.
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.
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.