본문 바로가기
Python Code

파이썬 - rolling 함수, 이동평균에 대한 이해

by quantWhale 2023. 3. 15.
반응형

안녕하세요. 인천고래입니다.

파이썬에서 데이터 처리를 할 때, 유용하게 사용되는 rolling 함수에 대해 알아보겠습니다.

 

rolling 함수란 시계열 데이터의 이동평균, 이동표준편차, 이동최대값, 이동최소값 등을 계산하기 위해 사용됩니다.

이동평균이란 데이터의 일정 기간 동안의 평균값을 구하는 것을 의미하며, 주식 시장에서의 이동평균선의 계산법과 동일하게 구합니다.

 

이동표준편차는 데이터의 일정 기간 동안의 표준편차를 구하는 것입니다.

 

이동최대값은 데이터의 일정 기간 동안의 최대값을 구하는 것이며,

이동최소값은 데이터의 일정 기간 동안의 최소값을 구하는 것입니다.

 

즉, 우리가 기본적으로 알고 있던 이동평균선에는 표준편차를 구하는 방법과, 최대, 최소값을 구하는 이동최대값, 이동최소값을 구하는 다양한 방식이 존재합니다.

 

이러한 이동통계량을 계산하기 위해서는 데이터를 일정 기간 동안 분할하여 계산해야 합니다.

이를 위해 rolling 함수를 사용할 수 있습니다.

 

rolling 함수는 pandas 모듈의 DataFrame과 Series 객체에서 사용 가능합니다.

rolling 함수는 먼저 window 옵션을 설정해줍니다.

이 window 옵션은 데이터를 몇 개씩 묶어서 처리할 것인지를 결정합니다.

주식 시장에서는 peroid라고 하는 기간을 의미하며 20일 이동평균선이라면 20일의 데이터를 의미하는 것이고

window = 20이 20일 이동평균과 같은 의미하는 것으로 보시면 됩니다.

 

예를 들어 window=5를 설정하면 데이터를 5개씩 묶어서 처리합니다.

이후에 이동통계량을 계산할 메서드를 적용해주면 됩니다.

 

rolling 함수를 사용하기 위해서는 코드 상단에 pandas 모듈을 import 해야 합니다.

아래는 rolling 함수를 사용하여 이동평균을 계산하는 코드입니다.

 

import pandas as pd

# 데이터프레임 생성
data = pd.DataFrame({'value': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]})

# rolling 함수를 사용하여 이동평균 계산
rolling_mean = data['value'].rolling(window=3).mean()

# 결과 출력
print(rolling_mean)

위 코드에서는 window=3을 설정하여 데이터를 3개씩 묶어서 이동평균을 계산하였습니다.

이동평균을 계산한 결과는 다음과 같습니다.

 

0    NaN
1    NaN
2    2.0
3    3.0
4    4.0
5    5.0
6    6.0
7    7.0
8    8.0
9    9.0
Name: value, dtype: float64

위 결과에서 NaN은 이동평균을 계산할 데이터가 충분하지 않아 계산할 수 없음을 나타냅니다.

즉, 3일 이동평균선을 계산하기 위해서는 3개의 데이터가 필요한데 처음 2개의 데이터는 이동평균을 계산할 수 없어서 데이터로는 NaN이 나오게 되는 것입니다.

 

 

이것으로 간략하게나마 파이썬 rolling 함수에 대해 알아보았습니다.

 

반응형
-

댓글