Вирішено: pandas зворотне заповнення після підвищення дискретизації

У сучасному світі маніпулювання та аналіз даних є важливими для розуміння різноманітних явищ і прийняття обґрунтованих рішень. Одним із поширених завдань під час аналізу даних є повторна дискретизація даних часових рядів, яка передбачає зміну частоти даних шляхом підвищення дискретизації (збільшення частоти) або зменшення дискретизації (зменшення частоти). У цій статті ми обговоримо процес зворотного заповнення під час підвищення дискретизації даних часових рядів за допомогою потужної бібліотеки Python Pandas.

Зворотне заповнення даних часових рядів

Коли ми збільшуємо вибірку даних часових рядів, ми збільшуємо частоту точок даних, що зазвичай призводить до відсутності значень для новостворених точок даних. Щоб заповнити ці відсутні значення, ми можемо використовувати різноманітні методи. Один із таких методів називається зворотне заповнення, також відомий як засипка. Зворотне заповнення — це процес заповнення відсутніх значень наступним доступним значенням у часовому ряду.

Бібліотека панд

Пітона Бібліотека панд це важливий інструмент для маніпулювання даними, що пропонує широкий спектр функцій для обробки структур даних, таких як DataFrames і дані часових рядів. Pandas має вбудовані функції, які спрощують роботу з даними часових рядів, наприклад повторну вибірку та заповнення пропущених значень, що дозволяє нам ефективно виконувати зворотне заповнення після підвищення дискретизації.

Рішення: зворотне заповнення пандами

Щоб продемонструвати процес застосування зворотного заповнення після підвищення дискретизації даних часових рядів за допомогою Pandas, розглянемо простий приклад. Ми почнемо з імпорту необхідних бібліотек і створення зразка набору даних часового ряду.

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)

У наведеному вище коді ми спочатку встановили стовпець «дата» як індекс, а потім змінили дані на погодинну частоту за допомогою resample() функція. Отриманий DataFrame має відсутні значення через збільшення частоти. Потім ми використали fillna() метод із параметром "bfill" для виконання зворотного заповнення відсутніх значень.

Покрокове пояснення

Давайте розберемо код, щоб краще зрозуміти його:

1. Спочатку ми імпортували бібліотеки Pandas і NumPy:

   import pandas as pd
   import numpy as np
   

2. Ми створили зразок набору даних часового ряду за допомогою проміжок часу() функція з Pandas для генерування щоденних дат і випадкових числових значень:

   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. Далі ми встановили стовпець «дата» як індекс і перевибрали дані з погодинною частотою за допомогою resample() та asfreq() функції:

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

4. Нарешті ми заповнили відсутні значення в DataFrame з підвищеною дискретизацією за допомогою fillna() метод із параметром bfill для зворотного заповнення:

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

Висновок

У цій статті ми дослідили процес зворотне заповнення після підвищення дискретизації даних часового ряду за допомогою потужної бібліотеки Pandas на Python. Розуміючи та застосовуючи ці методи, ми можемо ефективно маніпулювати та аналізувати дані часових рядів, відкриваючи цінну інформацію та приймаючи обґрунтовані рішення.

Схожі повідомлення:

Залишити коментар