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

Leave a Comment

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.

Oprettelse af en datotabel i LuckyTemplates

Oprettelse af en datotabel i LuckyTemplates

Find ud af, hvorfor det er vigtigt at have en dedikeret datotabel i LuckyTemplates, og lær den hurtigste og mest effektive måde at gøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte vejledning fremhæver LuckyTemplates mobilrapporteringsfunktion. Jeg vil vise dig, hvordan du kan udvikle rapporter effektivt til mobilenheder.

Professionelle serviceanalyserapporter i LuckyTemplates

Professionelle serviceanalyserapporter i LuckyTemplates

I denne LuckyTemplates Showcase gennemgår vi rapporter, der viser professionel serviceanalyse fra et firma, der har flere kontrakter og kundeengagementer.

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Gå gennem de vigtigste opdateringer til Power Apps og Power Automate og deres fordele og implikationer for Microsoft Power Platform.

Almindelige SQL-funktioner: En oversigt

Almindelige SQL-funktioner: En oversigt

Opdag nogle almindelige SQL-funktioner, som vi kan bruge, såsom streng, dato og nogle avancerede funktioner til at behandle eller manipulere data.

LuckyTemplates skabelonoprettelse: Guide og tips

LuckyTemplates skabelonoprettelse: Guide og tips

I denne tutorial lærer du, hvordan du opretter din perfekte LuckyTemplates-skabelon, der er konfigureret til dine behov og præferencer.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne blog vil vi demonstrere, hvordan man lagdelte feltparametre med små multipler for at skabe utrolig nyttig indsigt og visuals.

LuckyTemplates-rangering og brugerdefineret gruppering

LuckyTemplates-rangering og brugerdefineret gruppering

I denne blog vil du lære, hvordan du bruger LuckyTemplates rangerings- og brugerdefinerede grupperingsfunktioner til at segmentere et eksempeldata og rangordne det efter kriterier.

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

I denne tutorial vil jeg dække en specifik teknik omkring, hvordan du kun viser Kumulativ Total op til en bestemt dato i dine visuals i LuckyTemplates.