Selesai: panda mengisi ke belakang selepas pensampelan naik

Kemaskini terakhir: 09/11/2023

Dalam dunia hari ini, manipulasi dan analisis data adalah penting untuk memahami pelbagai fenomena dan membuat keputusan termaklum. Salah satu tugas biasa dalam analisis data ialah pensampelan semula data siri masa, yang melibatkan perubahan kekerapan data, sama ada dengan pensampelan tinggi (meningkatkan kekerapan) atau pensampelan turun (mengurangkan kekerapan). Dalam artikel ini, kita akan membincangkan proses pengisian ke belakang sambil meningkatkan data siri masa menggunakan perpustakaan Python yang berkuasa, Pandas.

Isi Belakang Data Siri Masa

Apabila kita mengambil sampel data siri masa secara menaik, kita meningkatkan kekerapan titik data, yang biasanya menghasilkan nilai yang hilang untuk titik data yang baru dibuat. Untuk mengisi nilai yang hilang ini, kita boleh menggunakan pelbagai kaedah. Satu kaedah sedemikian dipanggil pengisian ke belakang , juga dikenali sebagai pengisian semula . Pengisian ke belakang ialah proses mengisi nilai yang hilang dengan nilai seterusnya yang tersedia dalam siri masa.

Perpustakaan Panda

Pustaka Pandas Python merupakan alat penting untuk manipulasi data, menawarkan pelbagai fungsi untuk mengendalikan struktur data seperti DataFrames dan data siri masa. Pandas mempunyai ciri terbina dalam yang memudahkan pengendalian data siri masa, seperti pensampelan semula dan pengisian nilai yang hilang, membolehkan kita melakukan pengisian ke belakang selepas pensampelan semula dengan cekap.

Penyelesaian: Isi Belakang dengan Panda

Untuk menunjukkan proses menggunakan isian mundur selepas meningkatkan data siri masa menggunakan Panda, mari kita pertimbangkan contoh mudah. Kami akan bermula dengan mengimport perpustakaan yang diperlukan dan mencipta set data siri masa sampel.

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

Sekarang setelah kami mempunyai data sampel kami, kami akan meneruskan pensampelan naik dan menggunakan kaedah pengisian ke belakang. Dalam contoh ini, kami akan upsample daripada kekerapan harian kepada kekerapan setiap jam:

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

Dalam kod di atas, kita mula-mula menetapkan lajur 'tarikh' sebagai indeks dan kemudian mencontohi semula data kepada frekuensi setiap jam menggunakan fungsi resample() . DataFrame yang terhasil mempunyai nilai yang hilang disebabkan oleh peningkatan frekuensi. Kemudian kita menggunakan kaedah fillna() dengan parameter 'bfill' untuk melakukan pengisian ke belakang pada nilai yang hilang.

Penjelasan Langkah demi Langkah

Mari pecahkan kod untuk memahaminya dengan lebih baik:

1. Kami mula-mula mengimport perpustakaan Pandas dan NumPy:

   import pandas as pd
   import numpy as np
   

2. Kami mencipta set data siri masa sampel menggunakan fungsi date_range() daripada Pandas untuk menjana tarikh harian dan nilai berangka rawak:

   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. Seterusnya, kita tetapkan lajur 'tarikh' sebagai indeks dan mencontohi semula data kepada frekuensi setiap jam dengan fungsi resample() dan asfreq() :

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

4. Akhir sekali, kami mengisi nilai yang hilang dalam DataFrame yang disampel semula menggunakan kaedah fillna() dengan parameter 'bfill' untuk pengisian ke belakang:

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

Kesimpulan

Dalam artikel ini, kami meneroka proses pengisian ke belakang selepas pensampelan semula data siri masa menggunakan pustaka Pandas yang berkuasa dalam Python. Dengan memahami dan melaksanakan teknik ini, kami boleh memanipulasi dan menganalisis data siri masa dengan cekap, menemui pandangan berharga dan membuat keputusan termaklum.

Related posts: