Solved: pandas backward fill pagkatapos ng upsampling

Sa mundo ngayon, ang pagmamanipula at pagsusuri ng data ay mahalaga sa pag-unawa sa iba't ibang phenomena at paggawa ng matalinong mga desisyon. Ang isa sa mga karaniwang gawain sa pagsusuri ng data ay ang pag-resampling ng data ng serye ng oras, na kinapapalooban ng pagbabago sa dalas ng data, alinman sa pamamagitan ng pag-upsampling (pagpapataas ng dalas) o pag-downsampling (pagbaba ng dalas). Sa artikulong ito, tatalakayin natin ang proseso ng backward filling habang nag-upsamp ng data ng time series gamit ang malakas na library ng Python, ang Pandas.

Paatras na Punan ang Data ng Serye ng Oras

Kapag nag-upsample kami ng data ng time series, pinapataas namin ang dalas ng mga punto ng data, na kadalasang nagreresulta sa mga nawawalang halaga para sa mga bagong likhang punto ng data. Para punan ang mga nawawalang value na ito, maaari tayong gumamit ng iba't ibang paraan. Ang isang ganoong paraan ay tinatawag pabalik na pagpuno, kilala din sa backfilling. Ang backward filling ay ang proseso ng pagpuno sa mga nawawalang value ng susunod na available na value sa time series.

Pandas Library

Python's library ng mga panda ay isang mahalagang tool para sa pagmamanipula ng data, na nag-aalok ng malawak na hanay ng mga functionality para sa paghawak ng mga istruktura ng data tulad ng DataFrames at data ng time series. Ang Pandas ay may mga built-in na feature na nagpapadali sa paggamit ng data ng time series, gaya ng resampling at pagpuno ng mga nawawalang value, na nagbibigay-daan sa aming mahusay na magsagawa ng backward filling pagkatapos ng upsampling.

Solusyon: Paatras na Punan ng mga Panda

Para ipakita ang proseso ng paglalapat ng backward fill pagkatapos ng upsampling data ng time series gamit ang Pandas, isaalang-alang natin ang isang simpleng halimbawa. Magsisimula tayo sa pamamagitan ng pag-import ng mga kinakailangang library at paggawa ng sample na dataset ng time series.

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

Ngayong mayroon na kami ng aming sample na data, magpapatuloy kami sa pag-upsampling at paglalapat ng paraan ng backward fill. Sa halimbawang ito, mag-upsample kami mula sa pang-araw-araw na dalas patungo sa isang oras-oras na dalas:

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

Sa code sa itaas, itinakda muna namin ang column na 'petsa' bilang index at pagkatapos ay i-resample ang data sa isang oras-oras na dalas gamit ang resample() function. Ang resultang DataFrame ay may mga nawawalang halaga dahil sa tumaas na dalas. Pagkatapos ay ginamit namin ang fillna() paraan na may parameter na 'bfill' para magsagawa ng backward fill sa mga nawawalang value.

Step-by-Step na Paliwanag

Hatiin natin ang code para mas maunawaan ito:

1. Una naming na-import ang mga aklatan ng Pandas at NumPy:

   import pandas as pd
   import numpy as np
   

2. Gumawa kami ng sample na dataset ng time series gamit ang date_range() function mula sa Pandas upang makabuo ng pang-araw-araw na petsa at mga random na halaga ng numero:

   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. Susunod, itinakda namin ang column na 'petsa' bilang index at muling na-sample ang data sa isang oras-oras na dalas na may resample() at asfreq() function:

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

4. Sa wakas, pinunan namin ang mga nawawalang halaga sa na-upsample na DataFrame gamit ang fillna() pamamaraan na may parameter na 'bfill' para sa pabalik na pagpuno:

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

Konklusyon

Sa artikulong ito, ginalugad namin ang proseso ng pabalik na pagpuno pagkatapos ng upsampling data ng serye ng oras gamit ang malakas na library ng Pandas sa Python. Sa pamamagitan ng pag-unawa at pagpapatupad ng mga diskarteng ito, maaari naming mahusay na manipulahin at suriin ang data ng serye ng oras, pagtuklas ng mahahalagang insight at paggawa ng matalinong mga desisyon.

Kaugnay na mga post:

Mag-iwan ng komento