Решено: панде попуњавање уназад након упсамплинга

У данашњем свету, манипулација подацима и анализа су од суштинског значаја за разумевање различитих феномена и доношење информисаних одлука. Један од уобичајених задатака у анализи података је поновно узорковање података временске серије, што укључује промену фреквенције података, било повећањем узорковања (повећање фреквенције) или смањењем узорковања (смањење фреквенције). У овом чланку ћемо разговарати о процесу попуњавања уназад док повећавамо узорковање података временских серија користећи моћну Питхон библиотеку, Пандас.

Попуните податке временске серије уназад

Када повећавамо узорковање података временске серије, повећавамо учесталост тачака података, што обично резултира недостајућим вредностима за новокреиране тачке података. Да бисмо попунили ове недостајуће вредности, можемо користити различите методе. Један такав метод се зове пуњење уназад, такође познат као затрпавање. Попуњавање уназад је процес попуњавања недостајућих вредности следећом доступном вредношћу у временској серији.

Пандас Либрари

Питхон-а Пандас библиотека је суштински алат за манипулацију подацима, који нуди широк спектар функционалности за руковање структурама података као што су оквири података и подаци о временским серијама. Пандас има уграђене функције које олакшавају рад са подацима временских серија, као што су поновно узорковање и попуњавање недостајућих вредности, што нам омогућава да ефикасно извршимо попуњавање уназад након повећања узорковања.

Решење: Попуни уназад са пандама

Да бисмо демонстрирали процес примене попуњавања уназад након повећања узорковања података временске серије помоћу Пандас-а, размотримо једноставан пример. Почећемо са увозом потребних библиотека и креирањем узорка скупа података временске серије.

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

Сада када имамо наше узорке података, наставићемо са повећањем узорковања и применом методе попуњавања уназад. У овом примеру ћемо повећати узорковање са дневне фреквенције на учесталост по сату:

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

У коду изнад, прво смо поставили колону „датум“ као индекс, а затим поново узорковали податке на учесталост по сату користећи ресампле() функција. Резултујућем ДатаФраме-у недостају вредности због повећане фреквенције. Затим смо користили филлна() метода са параметром 'бфилл' да изврши попуну уназад на вредностима које недостају.

Објашњење корак по корак

Хајде да разложимо код да бисмо га боље разумели:

1. Прво смо увезли Пандас и НумПи библиотеке:

   import pandas as pd
   import numpy as np
   

2. Направили смо узорак скупа података временске серије користећи дате_ранге() функција из Пандас за генерисање дневних датума и насумичних нумеричких вредности:

   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. Затим смо поставили колону 'датум' као индекс и поново узорковали податке на учесталост по сату са ресампле() асфрек() функције:

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

4. Коначно, попунили смо вредности које недостају у претходно узоркованом ДатаФраме-у користећи филлна() метод са параметром 'бфилл' за попуњавање уназад:

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

Zakljucak

У овом чланку смо истражили процес попуњавање уназад након повећања узорковања података временске серије користећи моћну Пандас библиотеку у Питхон-у. Разумевањем и применом ових техника, можемо ефикасно да манипулишемо и анализирамо податке временских серија, откривајући вредне увиде и доносећи информисане одлуке.

Релатед постс:

Оставите коментар