Atrisināts: pandas aizpildiet atpakaļ pēc paraugu ņemšanas

Mūsdienu pasaulē datu manipulācijas un analīze ir būtiska, lai izprastu dažādas parādības un pieņemtu apzinātus lēmumus. Viens no izplatītākajiem datu analīzes uzdevumiem ir laikrindu datu atkārtota iztveršana, kas ietver datu biežuma maiņu, palielinot paraugus (palielinot biežumu), vai samazinot iztveršanu (samazinot biežumu). Šajā rakstā mēs apspriedīsim atpakaļgaitas aizpildīšanas procesu, vienlaikus veicot laikrindu datu iztveršanu, izmantojot jaudīgo Python bibliotēku Pandas.

Atpakaļ aizpildiet laikrindas datus

Veicot laikrindu datu izlasi, mēs palielinām datu punktu biežumu, kā rezultātā parasti trūkst vērtību jaunizveidotajiem datu punktiem. Lai aizpildītu šīs trūkstošās vērtības, mēs varam izmantot dažādas metodes. Viena šāda metode tiek saukta aizmugures pildījums, zināms arī kā aizpildīšana. Atpakaļ aizpildīšana ir process, kurā trūkstošās vērtības tiek aizpildītas ar nākamo pieejamo vērtību laikrindā.

Pandas bibliotēka

Python's Pandas bibliotēka ir būtisks datu manipulācijas rīks, kas piedāvā plašu funkciju klāstu tādu datu struktūru kā DataFrames un laikrindu datu apstrādei. Pandas ir iebūvētas funkcijas, kas atvieglo darbu ar laikrindu datiem, piemēram, atkārtotu paraugu ņemšanu un trūkstošo vērtību aizpildīšanu, ļaujot mums efektīvi veikt atpakaļejošu aizpildīšanu pēc atkārtotas paraugu ņemšanas.

Risinājums: aizpildiet atpakaļ ar pandām

Lai demonstrētu atpakaļgaitas aizpildīšanas procesu pēc laikrindu datu iztveršanas, izmantojot Pandas, aplūkosim vienkāršu piemēru. Mēs sāksim ar nepieciešamo bibliotēku importēšanu un laikrindu datu kopas parauga izveidi.

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

Tagad, kad mums ir datu paraugi, mēs turpināsim paraugu ņemšanu un atgriezeniskās aizpildīšanas metodi. Šajā piemērā mēs pārņemsim paraugus no dienas biežuma uz stundu:

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

Iepriekš minētajā kodā mēs vispirms iestatījām sleju “datums” kā indeksu un pēc tam atkārtoti iztvērām datus pēc stundas, izmantojot resample () funkciju. Rezultātā DataFrame trūkst vērtību palielinātas frekvences dēļ. Pēc tam mēs izmantojām fillna () metodi ar parametru 'bfill', lai veiktu trūkstošo vērtību atpakaļaizpildīšanu.

Paskaidrojums soli pa solim

Sadalīsim kodu, lai to labāk saprastu:

1. Pirmo reizi mēs importējām Pandas un NumPy bibliotēkas:

   import pandas as pd
   import numpy as np
   

2. Mēs izveidojām laikrindu datu kopas paraugu, izmantojot datumu_diapazons() funkcija no Pandas, lai ģenerētu dienas datumus un nejaušas skaitliskās vērtības:

   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. Pēc tam mēs iestatījām sleju “datums” kā indeksu un atkārtoti veicām datu paraugu ik stundu, izmantojot resample () un asfreq () funkcijas:

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

4. Visbeidzot, mēs aizpildījām trūkstošās vērtības augšizlasītajā DataFrame, izmantojot fillna () metode ar parametru "bfill" atpakaļgaitas aizpildīšanai:

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

Secinājumi

Šajā rakstā mēs izpētījām procesu atpakaļejoša aizpildīšana pēc laikrindu datu pārtveršanas izmantojot jaudīgo Pandas bibliotēku Python. Izprotot un ieviešot šīs metodes, mēs varam efektīvi manipulēt un analizēt laikrindu datus, atklājot vērtīgas atziņas un pieņemot apzinātus lēmumus.

Related posts:

Leave a Comment