Skip to content

시계열 분석 마스터하기: Pandas Resample 사용 방법

Updated on

Python의 강력한 라이브러리인 Pandas를 사용하면 시계열 데이터의 분석이 간단해집니다. 시계열 분석에서 눈에 띄는 기능 중 하나는 resample() 함수입니다. 이것에 익숙하지 않거나 더 포괄적인 이해를 원한다면, 이 글은 Pandas Resample 사용 방법에 대한 자세한 가이드를 제공합니다.

Python에서 빠르게 데이터 시각화를 만들고 싶으신가요?

PyGWalker는 Jupyter Notebook 기반 환경에서 데이터 분석 및 시각화 워크플로우를 직접 빠르게 처리할 수 있는 오픈 소스 Python 프로젝트입니다.

PyGWalker (opens in a new tab)는 Pandas Dataframe(또는 Polars Dataframe)을 시각적 사용자 인터페이스(UI)로 변환하여 변수를 드래그앤드롭하여 쉽게 그래프를 생성할 수 있습니다. 다음과 같은 코드를 사용하십시오.

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

이제 다음 온라인 노트북에서 PyGWalker를 바로 실행할 수 있습니다.

그리고 GitHub에서 ⭐️을 꼭 눌러주세요!

Kaggle 노트북에서 PyGWalker 실행 (opens in a new tab)Google Colab에서 PyGWalker 실행 (opens in a new tab)GitHub에서 PyGWalker ⭐️ 누르기 (opens in a new tab)
Kaggle 노트북에서 PyGWalker 실행 (opens in a new tab)Google Colab에서 PyGWalker 실행 (opens in a new tab)GitHub에서 PyGWalker 실행 (opens in a new tab)

Pandas Resample의 강력함

그룹화 함수인 groupby()로 특정 범주에 따라 데이터를 그룹화하는 것처럼, resample()은 다른 시간 간격에서 데이터를 그룹화할 수 있습니다. 이 특별한 함수는 시계열 데이터의 데이터 변환 및 정리를 강화합니다. 그러나 전체 잠재력을 활용하려면 핵심 매개변수와 기본 개념을 이해하는 것이 필수적입니다.

리샘플링의 핵심 개념

리샘플링은 크게 두 가지 유형으로 분류할 수 있습니다.

  1. Upsampling(업샘플링): 이것은 데이터의 빈도를 증가시키는 것이며, 예를 들어 연간 데이터를 월간 데이터로 변환하는 것입니다. 이제 더 많은 데이터 포인트가 시계열을 나타냅니다.
  2. Downsampling(다운샘플링): 이것은 업샘플링의 반대입니다. 즉, 월간 데이터를 연간 데이터로 변환하는 것과 같은 데이터의 빈도를 감소시킵니다.

Resample의 주요 매개변수 이해

이제 resample()을 효과적으로 사용하기 위해 마스터해야하는 필수 매개변수를 깊이 파헤쳐 보겠습니다.

'rule' 매개변수

규칙(rule)은 데이터를 리샘플하는 빈도를 지정하는 중요한 매개변수입니다. 시계열을 5분 간격으로 또는 30분 간격으로 그룹화하려면 규칙 매개변수를 사용하면 됩니다.

# 5분 간격으로 데이터 리샘플링
df.resample(rule='5T')

'axis' 매개변수

axis 매개변수 (기본값은 0)는 행 또는 열을 따라 리샘플링할지를 결정합니다. 대부분의 시계열 데이터에서는 axis=0(행을 따라 리샘플링)이 일반적으로 사용됩니다.

# 열을 따라 데이터 리샘플링
df.resample(rule='5T', axis=1)

'closed' 매개변수

closed 매개변수는 간격의 어느 쪽이 닫혀있는지를 제어합니다. 즉, 해당 간격에 대해 리샘플링된 데이터는 포함되지 않습니다. 시간 샘플의 모서리에 데이터를 포함할지를 결정할 때 특히 유용합니다.

# 간격의 오른쪽을 닫은 데이터 리샘플링
df.resample(rule='5T', closed='right')

'label' 매개변수

이 매개변수는 리샘플링 후 새로 생성된 bin에 레이블을 지정하는 데 도움이 됩니다. bin은 시작과 끝 두 가지면이 있습니다. 이 매개변수는 새로운 bin의 레이블을 어떻게 지정할지 결정합니다.

# 오른쪽에 레이블을 달고 데이터 리샘플링
df.resample(rule='5T', label='right')

'convention' 매개변수

convention 매개변수는 주로 업-샘플링에서 사용되며 데이터 포인트를 어디에 배치할지 결정합니다.

# convention을 'start'로 설정한 데이터 리샘플링
df.resample(rule='5T', convention='start')

다른 매개변수도 더 있지만, 이러한 매개변수는 리샘플링 함수를 효과적으로 활용하는 기초를 구성합니다.

모두 함께 적용: 판다스 리샘플 사용 예시

이해를 정리하기 위해 더 자세한 예제를 살펴보겠습니다. 10시부터 11시까지 5분마다 데이터가 기록된 시계열 데이터가 있다고 가정합니다. 이제 우리는 이 데이터를 15분 간격으로 리샘플링하려고 합니다.

import pandas as pd
 
# 날짜 범위 생성
date_range = pd.date_range(start='10:00', end='11:00', freq='5T')
 
# 랜덤 DataFrame 생성
df = pd.DataFrame(date_range, columns=['date'])
df['data'] = np.random.randint(0,100,size=(len(date_range)))
 
# 날짜 열을 인덱스로 설정
df.set_index('date', inplace=True) 
 
# 데이터를 15분 간격으로 재샘플링
resampled_data = df.resample(rule='15T').mean()
 

이 예시에서는, 먼저 10시부터 11시까지 5분 간격으로 데이터 포인트가 있는 DataFrame을 생성했습니다. 그 다음, resample()을 사용하여 각 구간에 속한 데이터 포인트의 평균을 취해 15분 간격으로 데이터를 재샘플링하였습니다.

재샘플링 기술을 숙달하면 시계열 분석 기술을 획기적으로 개선할 수 있습니다. 다양한 매개변수와 기법을 실험하여 그 효과를 더 잘 이해해보세요.