Riješeno: pandas popunjavanje unatrag nakon povećanja uzorkovanja

U današnjem svijetu manipulacija i analiza podataka ključni su za razumijevanje različitih pojava i donošenje informiranih odluka. Jedan od uobičajenih zadataka u analizi podataka je ponovno uzorkovanje podataka vremenske serije, što uključuje promjenu učestalosti podataka, bilo povećanjem uzorkovanja (povećanje učestalosti) ili smanjenjem uzorkovanja (smanjenje učestalosti). U ovom ćemo članku raspravljati o procesu popunjavanja unatrag dok povećavamo uzorkovanje podataka vremenske serije pomoću moćne Python biblioteke, Pandas.

Ispunjavanje podataka vremenske serije unazad

Kada povećavamo uzorkovanje podataka vremenske serije, povećavamo učestalost podatkovnih točaka, što obično rezultira nedostatkom vrijednosti za novostvorene podatkovne točke. Za popunjavanje ovih vrijednosti koje nedostaju, možemo koristiti različite metode. Jedna takva metoda je tzv unatrag punjenje, također poznat kao zatrpavanje. Popunjavanje unatrag je proces popunjavanja vrijednosti koje nedostaju sljedećom dostupnom vrijednošću u vremenskoj seriji.

Pandas knjižnica

Pythonova Knjižnica pandi je bitan alat za manipulaciju podacima, koji nudi širok raspon funkcionalnosti za rukovanje podatkovnim strukturama kao što su DataFrames i podaci vremenskih serija. Pandas ima ugrađene značajke koje olakšavaju rad s vremenskim serijama podataka, kao što je ponovno uzorkovanje i popunjavanje vrijednosti koje nedostaju, što nam omogućuje učinkovito ispunjavanje unatrag nakon povećavanja uzorkovanja.

Rješenje: Ispuni Pandama unatrag

Kako bismo demonstrirali postupak primjene ispune unatrag nakon povećanja uzorkovanja podataka vremenske serije pomoću Panda, razmotrimo jednostavan primjer. Počet ćemo s uvozom potrebnih biblioteka i stvaranjem uzorka skupa podataka vremenske serije.

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

Sada kada imamo uzorke podataka, nastavit ćemo s povećanjem uzorkovanja i primjenom metode popunjavanja unatrag. U ovom primjeru povećat ćemo uzorkovanje s dnevne frekvencije na frekvenciju po satu:

# 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)

U gornjem kodu prvo smo postavili stupac 'datum' kao indeks, a zatim ponovno uzorkovali podatke na učestalost po satu koristeći ponovno uzorkovanje() funkcija. Rezultirajući DataFrame ima nedostajuće vrijednosti zbog povećane učestalosti. Zatim smo upotrijebili fillna() metoda s parametrom 'bfill' za izvršavanje popunjavanja vrijednosti koje nedostaju unatrag.

Objašnjenje korak po korak

Razdvojimo kôd da bismo ga bolje razumjeli:

1. Prvo smo uvezli biblioteke Pandas i NumPy:

   import pandas as pd
   import numpy as np
   

2. Napravili smo uzorak skupa podataka vremenske serije koristeći Raspon datuma() funkcija Pandas za generiranje dnevnih datuma i nasumičnih numeričkih vrijednosti:

   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. Zatim smo postavili stupac 'datum' kao indeks i ponovno uzorkovali podatke na učestalost po satu s ponovno uzorkovanje() i asfreq() funkcije:

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

4. Na kraju smo popunili nedostajuće vrijednosti u DataFrameu s povećanim uzorkovanjem pomoću fillna() metoda s parametrom 'bfill' za punjenje unatrag:

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

Zaključak

U ovom smo članku istražili proces punjenje unatrag nakon povećanja uzorkovanja podataka vremenske serije koristeći snažnu biblioteku Pandas u Pythonu. Razumijevanjem i primjenom ovih tehnika možemo učinkovito manipulirati i analizirati podatke vremenskih serija, otkrivajući vrijedne uvide i donoseći informirane odluke.

Povezani postovi:

Ostavite komentar