[파이썬] 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

이렇게 판다스에서 롤링 및 이동창 함수를 사용하여 시계열 데이터를 처리할 수 있습니다. 롤링 함수와 이동창 함수는 데이터 분석에서 굉장히 유용하게 사용되며, 다양한 통계적 계산을 수행할 수 있습니다. 앞으로 데이터 처리 및 분석을 할 때 판다스의 롤링 및 이동창 함수를 적절히 활용해보세요!