파이썬/데이터프레임 다루기

Pandas에서 Resample로 시간 간격 묶기

Data Jun 2025. 8. 31. 13:25

시계열 데이터를 다룰 때는 특정한 시간 간격으로 데이터를 묶어서 집계하는 경우가 많습니다. 예를 들어, 분 단위 데이터를 일 단위로 합치거나 평균을 내는 작업이 필요할 때가 있습니다. 이럴 때 Pandas의 resample() 메서드를 활용할 수 있습니다.

 

Resample 기본 개념

resample()은 시계열 데이터를 원하는 시간 단위로 리샘플링(Resampling) 하는 기능입니다.
쉽게 말해, 데이터를 일정한 시간 간격으로 묶어서 합계·평균 등 집계를 할 수 있게 해줍니다.

 

기본 문법

df.resample(rule, on=None).agg(함수)

 

  • rule: 묶을 시간 간격 ('D'=일, 'W'=주, 'M'=월, 'H'=시간 등)
  • on: 시간 정보가 담긴 컬럼 (DatetimeIndex가 이미 설정돼 있으면 생략 가능)
  • agg: 집계 함수 (mean, sum, count 등)

예시

import pandas as pd

# 샘플 데이터
date_rng = pd.date_range(start="2022-10-01", end="2022-10-10", freq="D")
df = pd.DataFrame({
    "date": date_rng,
    "sales": [10, 12, 9, 14, 20, 15, 13, 17, 19, 25]
})

# 날짜를 인덱스로 설정
df = df.set_index("date")

# 주 단위로 묶어서 평균 계산
weekly_sales = df.resample("W").mean()
print(weekly_sales)

 

출력 결과

            sales
2022-10-02   10.5
2022-10-09   15.5
2022-10-16   25.0

 

일 단위 데이터를 주 단위 평균으로 집계했습니다.

 

자주 쓰는 시간 단위 (rule)

 

정리

  • resample()은 시계열 데이터를 원하는 간격으로 묶어서 집계하는 기능
  • rule 파라미터로 시간 단위를 지정 (D, W, M, H 등)
  • 평균, 합계, 개수 등 다양한 집계 함수와 함께 활용 가능

💡 resample()은 시계열 데이터 분석에서 트렌드 파악, 요약 통계, 시각화 전처리 등에 자주 활용됩니다.