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 : 시간
  • J :일
  • : 주
  • : 월
  • Q : 분기
  • A : 연도

다음 예에서는 실제로 시계열 데이터를 리샘플링하는 방법을 보여줍니다.

예: Python에서 시계열 데이터 리샘플링

1년 동안 회사의 매시간 총 매출을 보여주는 다음과 같은 pandas DataFrame이 있다고 가정해 보겠습니다.

 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 ) 

이 차트는 첫 번째 예의 8,545개 개별 시간에 대한 판매 데이터와 달리 51개 주에 대한 판매 데이터만 나타내기 때문에 읽기가 훨씬 쉽습니다.

참고 : 이 예에서는 판매 데이터를 주별로 요약했지만 더 적은 수의 데이터 포인트를 표시하려는 경우 월별 또는 분기별로 요약할 수도 있습니다.

추가 리소스

다음 튜토리얼에서는 Python에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Matplotlib에서 시계열을 그리는 방법
Seaborn에서 시계열을 그리는 방법
Python의 시계열에서 MAPE를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다