V današnjem svetu sta obdelava in analiza podatkov bistvena za razumevanje različnih pojavov in sprejemanje premišljenih odločitev. Ena od običajnih nalog pri analizi podatkov je ponovno vzorčenje podatkov časovnih vrst, ki vključuje spreminjanje frekvence podatkov, bodisi z navzgornjim vzorčenjem (povečanje frekvence) ali znižanjem vzorčenja (zmanjšanje frekvence). V tem članku bomo razpravljali o procesu povratnega polnjenja med vzorčenjem podatkov časovnih vrst z uporabo zmogljive knjižnice Python, Pandas.
Podatki časovne vrste za nazaj
Ko nadvzorčimo podatke časovnih vrst, povečamo pogostost podatkovnih točk, kar običajno povzroči manjkajoče vrednosti za novo ustvarjene podatkovne točke. Za zapolnitev teh manjkajočih vrednosti lahko uporabimo različne metode. Ena taka metoda se imenuje povratno polnjenje, poznan tudi kot zasipavanje. Polnjenje nazaj je postopek zapolnjevanja manjkajočih vrednosti z naslednjo razpoložljivo vrednostjo v časovni vrsti.
Pandas knjižnica
Pythonova Knjižnica pande je bistveno orodje za manipulacijo podatkov, ki ponuja široko paleto funkcionalnosti za obdelavo podatkovnih struktur, kot so DataFrames in podatki časovnih vrst. Panda ima vgrajene funkcije, ki olajšajo delo s podatki časovnih vrst, kot je ponovno vzorčenje in zapolnjevanje manjkajočih vrednosti, kar nam omogoča učinkovito polnjenje za nazaj po vzorčenju.
Rešitev: Izpolnite nazaj s pandami
Za predstavitev postopka uporabe zapolnjevanja za nazaj po povečanem vzorčenju podatkov časovnih vrst z uporabo Pande si oglejmo preprost primer. Začeli bomo z uvozom potrebnih knjižnic in ustvarjanjem vzorčnega niza podatkov časovne vrste.
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
Zdaj, ko imamo vzorčne podatke, bomo nadaljevali s povečevanjem vzorčenja in uporabo metode povratnega polnjenja. V tem primeru bomo povečali vzorčenje z dnevne frekvence na frekvenco na uro:
# 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)
V zgornji kodi smo najprej nastavili stolpec 'datum' kot indeks in nato ponovno vzorčili podatke na urno frekvenco z uporabo ponovno vzorčenje () funkcijo. Dobljen DataFrame ima manjkajoče vrednosti zaradi povečane frekvence. Nato smo uporabili fillna() metoda s parametrom 'bfill' za izvedbo povratnega zapolnjevanja manjkajočih vrednosti.
Razlaga po korakih
Razčlenimo kodo, da jo bomo bolje razumeli:
1. Najprej smo uvozili knjižnici Pandas in NumPy:
import pandas as pd import numpy as np
2. Ustvarili smo vzorčni niz podatkov o časovni vrsti z uporabo datum_obseg() funkcija Pandas za ustvarjanje dnevnih datumov in naključnih številskih vrednosti:
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. Nato smo stolpec 'datum' nastavili kot indeks in znova vzorčili podatke na urno frekvenco z ponovno vzorčenje () in asfreq() funkcije:
df.set_index('date', inplace=True) hourly_df = df.resample('H').asfreq()
4. Končno smo zapolnili manjkajoče vrednosti v nadvzorčenem DataFrame z uporabo fillna() metoda s parametrom 'bfill' za povratno polnjenje:
hourly_df.fillna(method='bfill', inplace=True)
zaključek
V tem članku smo raziskali postopek povratno polnjenje po povečanem vzorčenju podatkov časovne vrste z uporabo zmogljive knjižnice Pandas v Pythonu. Z razumevanjem in izvajanjem teh tehnik lahko učinkovito manipuliramo in analiziramo podatke časovnih vrst, odkrivamo dragocene vpoglede in sprejemamo premišljene odločitve.