Tidsseriedata i pandaer

I denne øvelse lærer du, hvordan du gensampler tidsseriedata ved hjælp af Pandas. Du kan se den fulde video af denne tutorial nederst på denne blog .

Hvad er denne idé med resampling? Dette er relateret til tidsseriedata, og det, vi vil gøre, er at ændre frekvensen, hvormed disse data rapporteres. For eksempel ændring af årlig værdi til månedlig eller ugentlig, eller ændring af timedata til daglig. Kort sagt, vi ændrer niveauet i hierarkiet.

Dette kan bruges af en række årsager, såsom at få mere pålidelige tendenser , stikprøvestørrelser og sæsonbestemthed . Ved nogle rapporter vil det give mere mening, hvis vi bruger et eller andet niveau af hierarkiet i forhold til et andet.

Derudover kan resampling hjælpe, hvis du har forskellige datakilder, og du skal udføre sammenføjning af tidsseriedata. Dette vil også hjælpe, når du håndterer et mismatch i .

Tidsseriedata i pandaer

For at nedbryde dette yderligere har vi downsampling og upsampling.

Nedsampling er at mindske rapporteringsfrekvensen . Det kan være ting som at konvertere fra et sekund til en time for at få færre værdier eller nedsampling måned til kvartal.

På den anden side er upsampling at øge rapporteringsfrekvensen fra månedsniveau og ned til dagen . Det får vi flere eksempler på senere.

Tidsseriedata i pandaer

Indholdsfortegnelse

Sådan gensamples tidsseriedata ved hjælp af pandaer

Hvordan skal vi gøre dette i Pandas?

Først og fremmest vil vi ændre . Derefter kan vi upsample ved hjælp af interpolation, som vil udfylde værdierne, og vi kan downsample for at rulle op ved at aggregere værdierne.

Tidsseriedata i pandaer

Lad os gå over til Jupyter Notebook Python og tjekke dette ud med Pandas.

Til at starte med vil vi bruge Pandas ved at indtaste import pandas som pd , efterfulgt af import seaborn som sns for at visualisere det, og importere matplotlib.pyplot som plt for at tilpasse .

Den næste ting at gøre er at hente data fra vega_datasets importdata . Det er et rart sted at få eksempler på kilder. Vi vil også få sp = data.sp500 ( ) og sp.head ( ) bibliotek .

Tidsseriedata i pandaer

Her er vores data indtil videre. Vi har de daglige afkast og pris for hver dag.

Tidsseriedata i pandaer

For at indstille kolonnen indeks til dato skal du indtaste sp.set_index(['date'], inplace=True) og derefter kalde sp.head igen.

Tidsseriedata i pandaer

Brug af upsampling for at få værdier

Så lad os bruge upsampling for at få flere værdier. Da vi har data for hver dag, kan vi gå ned til timen ved at bruge den enkleste funktion som er sp [['pris']]. resample ('H').ffill ( ) , og kør det derefter. H står for time, M for måned, D for dagen og så videre. Du kan lære mere om dette i Pandas-dokumentationen .

Som vi kan se, den 1. januar ved midnat, er prisen 1394,46, det samme som de efterfølgende timer fra 01:00 til 04:00. Et andet eksempel er den 2. januar, hvor lukkekursen er 1366,42.

Tidsseriedata i pandaer

Der er andre måder at gøre dette på, selvom værdien ikke er tilgængelig på timeniveau. Der er også mere sofistikerede måder end blot at lave en fremadfyldning . For vores eksempel er det, vi gjorde, den grundlæggende måde at lave upsampling-interpolation på.

Lad os derefter gå til downsampling ved at indtaste avg_month = sp [['price]].resample ('M').mean ( ) , derefter avg_month.head ( ) og køre det for at kontrollere.

Som illustreret kan vi se den sidste dag i hver måned og den gennemsnitlige pris. Vi kan reducere prøverne for at have færre værdier, eller hvad vi kalder downsizing.

Tidsseriedata i pandaer

For at visualisere dette, lad os skrive om-plot de dimensioner, der er tegnet. Derefter efterfulgt af sns.lineplot . Linjeplottet fungerer bedre med en længere X-akse, mens Y-værdien er den gennemsnitlige månedlige pris.

Lad os køre dette for at se gennemsnitsprisen for måneden plottet.

Tidsseriedata i pandaer

Igen, der er mange forskellige måder, vi kan gøre dette på. For eksempel, hvis vi vil vide den laveste pris pr. kvartal, skal vi bare skrive quarter_low og derefter quarter_low.head for at køre det.

Så der kan vi nu se den kvartalsvise laveste værdi fundet i hvert kvartal. Sådan laver du en resample.

Tidsseriedata i pandaer




Konklusion

For at afslutte det, er Pandas virkelig bygget til resampling og tidsseriedata . Hvis du arbejder med tidsseriedata og har forskellige granulariteter, kan resampling være meget nyttig.

Sørg desuden for at læse Pandas-dokumentationen om resample-metoden for at lære en masse forskellige måder at gøre dette på. Vi kiggede på de grundlæggende, men du kan gøre ting som f.eks. hver anden uge, den sidste arbejdsdag i måneden og flere muligheder for resampling.

Alt det bedste,

George Mount


Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.