[파이썬] pandas에서 시계열 리샘플링 (resample)
시계열 데이터는 시간에 따라 존재하는 데이터 포인트의 연속적인 시퀀스를 말합니다. 이러한 데이터를 다루기 위해 pandas는 강력한 도구와 함수들을 제공합니다. 그 중 하나가 시계열 리샘플링(resample)입니다.
시계열 리샘플링은 기존의 시계열 데이터를 더 크거나 작은 주기로 재샘플링하는 작업입니다. 이는 일별 데이터를 주간 데이터로 집계하거나, 시간 단위 데이터를 분 단위로 리샘플링하는 등의 작업을 가능하게 해줍니다.
Resample 함수
pandas는 시계열 데이터를 리샘플링하기 위해 resample
함수를 제공합니다. resample
함수는 두 가지 핵심 파라미터를 받습니다:
rule
: 리샘플링할 주기를 나타내는 문자열입니다. 주기는 ‘D’ (일), ‘W’ (주), ‘M’ (월), ‘Q’ (분기), ‘Y’ (년) 등으로 표시됩니다.how
: 리샘플링할 때 각 그룹의 데이터를 어떻게 처리할지를 나타내는 문자열입니다. 일반적으로는 수합(sum
), 평균(mean
), 최댓값(max
), 최솟값(min
) 등이 사용됩니다.
예시
가상의 주식 가격 데이터로 예시를 들어보겠습니다. 아래는 5일 동안의 주식 가격 데이터입니다.
import pandas as pd
# 가상의 주식 가격 데이터
data = {'date': ['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04', '2022-01-05'],
'price': [100, 105, 98, 102, 110]}
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
print(df)
price
date
2022-01-01 100
2022-01-02 105
2022-01-03 98
2022-01-04 102
2022-01-05 110
이제, 이 데이터를 주간 단위로 리샘플링해보겠습니다. 리샘플링된 결과는 해당 주간의 마지막 가격으로 표시됩니다.
weekly_data = df.resample('W').last()
print(weekly_data)
price
date
2022-01-02 105
2022-01-09 110
위의 예시에서는 resample('W')
를 사용하여 주간 단위로 리샘플링했습니다. last()
함수를 사용하여 해당 주간의 마지막 가격을 선택했습니다. 결과적으로, 주간 단위로 리샘플링된 데이터를 얻을 수 있었습니다.
결론
pandas의 시계열 리샘플링 기능은 시간에 따라 변화하는 데이터를 처리하는데 유용한 도구입니다. resample
함수를 사용하여 다양한 주기로 리샘플링하고, 데이터를 집계하여 분석할 수 있습니다. 이를 통해 시계열 데이터의 특성을 파악하고 예측하는 작업을 수행할 수 있습니다.