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ä.