Upptäck unika insikter med LuckyTemplates TOPN-funktion
Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.
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
Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.
Lär dig några fantastiska analytiska tekniker som vi kan göra för datamodellering i LuckyTemplates med hjälp av DAX-stödtabeller.
Här dyker vi in i LuckyTemplates Advanced DAX och implementerar rankningslogik för att få en mycket unik insikt. Jag visar också upp måttförgrening i det här exemplet.
Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.
Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.
Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.
Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.
Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.
I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.
RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.