Як змінити вибірку даних часових рядів у python (з прикладами)


Повторна вибірка даних часових рядів означає узагальнення або агрегування даних за новий період.

Ми можемо використовувати наступний базовий синтаксис для зміни вибірки даних часових рядів у Python:

 #find sum of values in column1 by month
weekly_df[' column1 '] = df[' column1 ']. resample (' M '). sum ()

#find mean of values in column1 by week
weekly_df[' column1 '] = df[' column1 ']. resample (' W '). mean () 

Зауважте, що ми можемо повторювати вибірку даних часових рядів для різних періодів часу, зокрема:

  • S : Секунди
  • min : хвилини
  • H : години
  • Дж : День
  • W : Тиждень
  • М : Місяць
  • П : Чверть
  • A : Рік

У наведеному нижче прикладі показано, як на практиці повторити вибірку даних часових рядів.

Приклад: перевибір даних часових рядів у Python

Припустімо, що ми маємо такий фрейм даних pandas, який показує загальні продажі компанії щогодини протягом одного року:

 import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (0)

#create DataFrame with hourly index
df = pd. DataFrame (index= pd.date_range (' 2020-01-06 ', ' 2020-12-27 ', freq=' h '))

#add column to show sales by hour
df[' sales '] = np. random . randint (low=0, high=20, size= len (df. index ))

#view first five rows of DataFrame
df. head ()

	             dirty
2020-01-06 00:00:00 12
2020-01-06 01:00:00 15
2020-01-06 02:00:00 0
2020-01-06 03:00:00 3
2020-01-06 04:00:00 3

Якщо ми створимо лінійний графік для візуалізації даних про продажі, він виглядатиме так:

 import matplotlib. pyplot as plt

#plot time series data
plt. plot (df. index , df. sales , linewidth= 3 ) 

Цю діаграму важко інтерпретувати, тому ми можемо узагальнити дані про продажі по тижнях:

 #create new DataFrame
weekly_df = pd. DataFrame ()

#create 'sales' column that summarizes total sales by week
weekly_df[' sales '] = df[' sales ']. resample (' W '). sum ()

#view first five rows of DataFrame
weekly_df. head ()

                dirty
2020-01-12 1519
2020-01-19 1589
2020-01-26 1540
2020-02-02 1562
2020-02-09 1614

Цей новий DataFrame показує суму продажів за тиждень.

Потім ми можемо створити графік часових рядів, використовуючи ці тижневі дані:

 import matplotlib. pyplot as plt

#plot weekly sales data
plt. plot ( weekly_df.index , weekly_df.sales , linewidth= 3 ) 

Цю діаграму набагато легше читати, оскільки ми представляємо дані про продажі лише за 51 окремий тиждень, на відміну від даних про продажі за 8545 окремих годин у першому прикладі.

Примітка : у цьому прикладі ми підсумували дані про продажі за тижнями, але ми також можемо підсумувати їх за місяцями чи кварталами, якщо хочемо нанести ще менше точок даних.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в Python:

Як побудувати часовий ряд у Matplotlib
Як побудувати часовий ряд у Seaborn
Як розрахувати MAPE за часовими рядами в Python

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *