Ratkaistu: pandat täyttävät taaksepäin näytteenoton jälkeen

Nykymaailmassa tietojen käsittely ja analysointi ovat olennaisia ​​eri ilmiöiden ymmärtämisessä ja tietoisten päätösten tekemisessä. Yksi yleisimmistä data-analyysin tehtävistä on aikasarjatietojen uudelleennäytteenotto, jossa datan tiheyttä muutetaan joko ylösnäytteistyksellä (taajuutta lisäämällä) tai alasnäytteistyksellä (taajuutta pienentämällä). Tässä artikkelissa keskustelemme taaksepäin täyttöprosessista, kun aikasarjatiedot otetaan ylös käyttämällä tehokasta Python-kirjastoa, Pandas.

Täytä aikasarjatiedot taaksepäin

Kun näytämme aikasarjan dataa, lisäämme datapisteiden tiheyttä, mikä yleensä johtaa uusien tietopisteiden puuttuviin arvoihin. Näiden puuttuvien arvojen täyttämiseksi voimme käyttää useita menetelmiä. Yksi tällainen menetelmä on ns täyttö taaksepäin, tunnetaan myös täyttö. Taaksepäin täyttö on prosessi, jossa puuttuvat arvot täytetään seuraavalla käytettävissä olevalla arvolla aikasarjassa.

Pandan kirjasto

Pythonin Pandan kirjasto on olennainen työkalu tietojen käsittelyyn, ja se tarjoaa laajan valikoiman toimintoja tietorakenteiden, kuten DataFrame- ja aikasarjatietojen, käsittelyyn. Pandasissa on sisäänrakennettuja ominaisuuksia, jotka helpottavat aikasarjatietojen käsittelyä, kuten uudelleennäytteenottoa ja puuttuvien arvojen täyttämistä, mikä mahdollistaa tehokkaan täytön suorittamisen taaksepäin näytteenoton jälkeen.

Ratkaisu: Täytä taaksepäin pandoilla

Tarkastellaanpa yksinkertaista esimerkkiä, jolla havainnollistetaan prosessi, jossa käytetään taaksepäin täyttöä sen jälkeen, kun aikasarjan tiedot on otettu ylös Pandasin avulla. Aloitamme tuomalla tarvittavat kirjastot ja luomalla näyteaikasarjatietojoukon.

import pandas as pd
import numpy as np

# Create a sample time series dataset
date_rng = pd.date_range(start='2022-01-01', end='2022-01-10', freq='D')
data = np.random.randint(0, 100, size=(len(date_rng), 1))

df = pd.DataFrame(date_rng, columns=['date'])
df['value'] = data

Nyt kun meillä on näytetietomme, jatkamme näytteenottoa ja taaksepäin täyttömenetelmän käyttöä. Tässä esimerkissä näytteistämme päivittäisestä taajuudesta tunnin välein:

# Upsample the data to hourly frequency
df.set_index('date', inplace=True)
hourly_df = df.resample('H').asfreq()

# Apply the backward fill method to fill missing values
hourly_df.fillna(method='bfill', inplace=True)

Yllä olevassa koodissa asetimme ensin 'päivämäärä'-sarakkeen indeksiksi ja sitten näytimme tiedot uudelleen tunnin välein käyttämällä näyte () toiminto. Tuloksena olevasta DataFramesta puuttuu arvoja lisääntyneen taajuuden vuoksi. Käytimme sitten fillna() menetelmä parametrilla 'bfill' suorittamaan puuttuvien arvojen täyttö taaksepäin.

Vaiheittainen selitys

Puretaan koodi ymmärtääksemme sitä paremmin:

1. Toimme ensin Pandas- ja NumPy-kirjastot:

   import pandas as pd
   import numpy as np
   

2. Loimme malliaikasarjatietojoukon käyttämällä ajanjakso() Pandas-toiminto päivittäisten päivämäärien ja satunnaisten numeeristen arvojen luomiseen:

   date_rng = pd.date_range(start='2022-01-01', end='2022-01-10', freq='D')
   data = np.random.randint(0, 100, size=(len(date_rng), 1))
   df = pd.DataFrame(date_rng, columns=['date'])
   df['value'] = data
   

3. Seuraavaksi asetimme 'päivämäärä'-sarakkeen indeksiksi ja näytimme tiedot uudelleen tunnin välein näyte () ja asfrek() toiminnot:

   df.set_index('date', inplace=True)
   hourly_df = df.resample('H').asfreq()
   

4. Lopuksi täytimme puuttuvat arvot upsampled DataFrame käyttämällä fillna() menetelmä 'bfill'-parametrilla taaksepäin täyttöä varten:

   hourly_df.fillna(method='bfill', inplace=True)
   

Yhteenveto

Tässä artikkelissa tutkimme prosessia taaksepäin täyttö aikasarjatietojen näytteenottamisen jälkeen käyttämällä Pythonin tehokasta Pandas-kirjastoa. Ymmärtämällä ja ottamalla nämä tekniikat käyttöön voimme tehokkaasti käsitellä ja analysoida aikasarjatietoja, löytää arvokkaita oivalluksia ja tehdä tietoisia päätöksiä.

Related viestiä:

Jätä kommentti