[파이썬] pandas에서 롤링 및 이동창 함수
판다스(Pandas)는 파이썬에서 데이터 조작 및 분석을 위한 강력한 라이브러리입니다. 이를 통해 데이터프레임(DataFrame)을 사용하여 데이터를 다루고 처리할 수 있습니다. 이번 블로그에서는 판다스에서 롤링 및 이동창 함수를 사용하는 방법을 알아보겠습니다.
롤링(Rolling) 함수
롤링 함수는 이동평균, 이동합 등과 같이 시계열 데이터에서 이동 창을 기준으로 연산을 수행하는 함수입니다. 판다스에서는 rolling
메서드를 사용하여 롤링 연산을 수행할 수 있습니다. 이를 통해 이동평균을 계산하는 예제를 살펴보겠습니다.
import pandas as pd
# 시계열 데이터 생성
data = {'date': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05'],
'value': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# 날짜를 인덱스로 변환
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
# 이동평균 계산
df['rolling_mean'] = df['value'].rolling(window=3).mean()
# 결과 출력
print(df)
위의 예제에서는 rolling
메서드를 사용하여 window=3
을 설정하여 이동평균을 계산했습니다. 결과는 다음과 같이 나타납니다.
value rolling_mean
date
2021-01-01 10 NaN
2021-01-02 20 NaN
2021-01-03 30 20.000000
2021-01-04 40 30.000000
2021-01-05 50 40.000000
이동창(Window) 함수
이동창 함수는 특정 범위에 대해 통계적 측정을 수행하는 함수입니다. 판다스에서는 rolling
메서드와 함께 다양한 통계 함수를 사용하여 이동창 연산을 수행할 수 있습니다. 이를 통해 이동최대값을 계산하는 예제를 살펴보겠습니다.
import pandas as pd
# 시계열 데이터 생성
data = {'date': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05'],
'value': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# 날짜를 인덱스로 변환
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
# 이동최대값 계산
df['max_value'] = df['value'].rolling(window=3).max()
# 결과 출력
print(df)
위의 예제에서는 rolling
메서드를 사용하여 window=3
을 설정하여 이동최대값을 계산했습니다. 결과는 다음과 같이 나타납니다.
value max_value
date
2021-01-01 10 NaN
2021-01-02 20 NaN
2021-01-03 30 30.0
2021-01-04 40 40.0
2021-01-05 50 50.0
이렇게 판다스에서 롤링 및 이동창 함수를 사용하여 시계열 데이터를 처리할 수 있습니다. 롤링 함수와 이동창 함수는 데이터 분석에서 굉장히 유용하게 사용되며, 다양한 통계적 계산을 수행할 수 있습니다. 앞으로 데이터 처리 및 분석을 할 때 판다스의 롤링 및 이동창 함수를 적절히 활용해보세요!