Mi az újramintavételezés ötlete? Ez az idősoros adatokkal kapcsolatos, és amit meg fogunk tenni, az az, hogy megváltoztatjuk az adatok jelentésének gyakoriságát. Például az éves érték havi vagy heti értékre, vagy az óránkénti adatok napira történő módosítása. Röviden, megváltoztatjuk a hierarchia szintjét.
Ez számos okból használható, például megbízhatóbb trendek , mintaméretek és szezonalitás érdekében . Egyes jelentéseknél sokkal értelmesebb, ha a hierarchia valamely szintjét használjuk a másikkal szemben.
Ezenkívül az újramintavétel segíthet abban az esetben, ha különböző adatforrásokkal rendelkezik, és össze kell kapcsolnia az idősoros adatokat. Ez akkor is segít, ha a .
Ennek további bontásához le- és felmintavételezést alkalmazunk.
A mintavételezés csökkenti a jelentéskészítés gyakoriságát . Ilyen lehet például a másodpercről egy órára való átalakítás annak érdekében, hogy kevesebb értéket kapjunk, vagy a mintavételezés hónapról negyedévre.
Másrészt a mintavételezés a jelentések gyakoriságának növelésére szolgál a hónapról a napra . Erre később több példát is hozunk.
Hogyan lehet újra mintavételezni az idősoros adatokat pandákkal
Hogyan fogjuk ezt megtenni Pandákban?
Először is megváltoztatjuk a . Ezután interpolációval felfelé mintavételezhetünk, amely kitölti az értékeket, és lemintázhatjuk az értékek összesítésével.
Menjünk át a Jupyter Notebook Pythonra, és nézzük meg ezt a Pandákkal.
Kezdetben a Pandákat úgy fogjuk használni, hogy beírjuk az import pandas parancsot pd néven , majd az import seaborn as sns parancsot a megjelenítéshez, és a matplotlib.pyplot mint plt parancsot a testreszabásához.
A következő teendő az, hogy lekérjük az adatokat a vega_datasets importált adatokból . Ez egy jó hely mintaforrások beszerzésére. Ezenkívül kapunk sp = data.sp500 ( ) és sp.head ( ) könyvtárat .
Íme az eddigi adataink. Megvan a napi visszaküldés és az ár minden napra.
Az index dátum oszlopra állításához írja be az sp.set_index(['dátum'], inplace=True), majd hívja meg újra az sp.head parancsot .
Felmintavételezés használata értékek lekéréséhez
Ezután, hogy több értékünk legyen, használjunk felmintavételezést. Mivel minden napra vonatkozóan rendelkezünk adatokkal, a legegyszerűbb függvénnyel, amely az sp [['ár']], lemehetünk az órára . resample ('H').ffill ( ) , majd futtassa. A H az órát, az M a hónapot, a D a napot és így tovább. Erről többet megtudhat a Pandas dokumentációjában .
Mint látjuk, január 1-jén éjfélkor az ár 1394,46, megegyezik a következő órákkal 1:00 és 4:00 óra között. Egy másik példa január 2-án, ahol a záróár 1366,42.
Ennek más módjai is vannak, még akkor is, ha az érték nem érhető el óra szinten. Ezenkívül vannak kifinomultabb módszerek is, mint az előre történő kitöltés . Példánkban, amit mi tettünk, az a felmintavételezési interpoláció alapvető módja.
Ezután menjünk a lefelé mintavételezéshez úgy, hogy beírjuk az avg_month = sp [['price]].resample ('M').mean ( ) , majd avg_month.head ( ) parancsot , és futtassuk le az ellenőrzéshez.
Az ábrán látható módon minden hónap utolsó napját és az átlagárat láthatjuk. Csökkenthetjük a mintákat, hogy kevesebb értéket kapjanak, vagy amit leépítésnek nevezünk.
Ennek megjelenítéséhez írjuk be, hogy újrarajzolja a megrajzolt méreteket. Ezután az sns.lineplot követi . A vonalábra jobban működik egy hosszabb X-tengellyel, míg az Y érték a havi átlagár.
A havi átlagár megjelenítéséhez futtassuk le ezt.
Ismét sokféleképpen tehetjük ezt meg. Például, ha meg akarjuk tudni a legalacsonyabb negyedéves árat, csak be kell írnunk a quarter_low , majd a quarter_low.head parancsot a futtatáshoz.
Így most láthatjuk az egyes negyedévekben talált negyedéves legalacsonyabb értéket. Így kell újramintát venni.
Következtetés
Mindezt a Pandas valóban újramintavételezésre és idősoros adatokra készült . Ha idősoros adatokkal dolgozik, és eltérő részletességgel rendelkezik, az újramintavételezés nagyon hasznos lehet.
Ezenkívül feltétlenül olvassa el a Pandas dokumentációját az újramintavételi módszerről, hogy megtudja ennek sokféle módját. Megnéztük az alapszintűeket, de olyan dolgokat is megtehet, mint kéthetente, a hónap utolsó munkanapján, és több lehetőség az újramintavételezésre.