Megoldva: a pandák visszafelé töltenek fel mintavételezés után

A mai világban az adatok manipulálása és elemzése elengedhetetlen a különböző jelenségek megértéséhez és a megalapozott döntések meghozatalához. Az adatelemzésben az egyik gyakori feladat az idősoros adatok újramintavételezése, amely az adatok gyakoriságának megváltoztatásával jár, akár felmintavétellel (gyakoriság növelésével), akár lemintavételezéssel (gyakoriság csökkentése). Ebben a cikkben a visszafelé történő kitöltés folyamatát tárgyaljuk, miközben az idősorok adataiból a hatékony Python-könyvtár, a Pandas segítségével mintavételezzük.

Visszafelé töltse ki az idősoros adatokat

Amikor az idősorok adatait mintavételezzük, növeljük az adatpontok gyakoriságát, ami általában hiányzó értékeket eredményez az újonnan létrehozott adatpontoknál. A hiányzó értékek kitöltésére számos módszert használhatunk. Az egyik ilyen módszer az ún visszafelé töltés, más néven visszatöltés. A visszafelé töltés az a folyamat, amikor a hiányzó értékeket az idősor következő elérhető értékével töltjük ki.

Pandas Könyvtár

Pythoné Pandas könyvtár nélkülözhetetlen eszköz az adatkezeléshez, és számos funkciót kínál az adatstruktúrák, például a DataFrame-ek és az idősoros adatok kezelésére. A Pandas beépített funkciókkal rendelkezik, amelyek megkönnyítik az idősoros adatokkal való munkát, például újramintavételezést és a hiányzó értékek kitöltését, lehetővé téve számunkra, hogy hatékonyan hajtsunk végre visszafelé mintavételezést követően.

Megoldás: Töltsd vissza Pandákkal

A visszafelé történő kitöltés alkalmazásának folyamatának bemutatásához az idősorok adatainak Pandas használatával történő felmintavételezése után nézzünk meg egy egyszerű példát. Kezdjük a szükséges könyvtárak importálásával és egy minta idősor adatkészlet létrehozásával.

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

Most, hogy megvannak a mintaadataink, folytatjuk a mintavételezést és a visszafelé történő kitöltési módszert. Ebben a példában napi gyakoriságról óránkénti gyakoriságra fogunk mintavételezni:

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

A fenti kódban először a „dátum” oszlopot állítottuk be indexként, majd újra mintavételeztük az adatokat óránkénti gyakoriságra a resample() funkció. Az eredményül kapott DataFrame értékei hiányoznak a megnövekedett gyakoriság miatt. Ezután használtuk a fillna() metódus a 'bfill' paraméterrel a hiányzó értékek visszafelé történő kitöltéséhez.

Lépésről lépésre magyarázat

Bontsuk fel a kódot, hogy jobban megértsük:

1. Először importáltuk a Pandas és NumPy könyvtárakat:

   import pandas as pd
   import numpy as np
   

2. Létrehoztunk egy minta idősor adatkészletet a időintervallum() a Pandák funkciója a napi dátumok és véletlenszerű számértékek generálásához:

   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. Ezután a „dátum” oszlopot állítottuk be indexként, és újra mintavételeztük az adatokat óránkénti gyakorisággal. resample() és a asfreq() funkciók:

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

4. Végül kitöltöttük a hiányzó értékeket az upsampled DataFrame-ben a segítségével fillna() metódus a „bfill” paraméterrel a visszafelé történő kitöltéshez:

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

Következtetés

Ebben a cikkben megvizsgáltuk a folyamatot visszafelé történő kitöltés az idősor adatok újramintavételezése után a Python hatékony Pandas könyvtárának használatával. Ezeknek a technikáknak a megértésével és megvalósításával hatékonyan manipulálhatjuk és elemezhetjük az idősorok adatait, így értékes betekintést nyerhetünk, és megalapozott döntéseket hozhatunk.

Kapcsolódó hozzászólások:

Írj hozzászólást