728x90
반응형
판다스의 rolling은 시계열 데이터 또는 순서 데이터를 처리할 때 유용한 메서드 중 하나로, 이동 평균, 이동 합계, 이동 표준편차 등을 계산하는 데 사용됩니다. rolling 메서드를 사용하면 데이터를 윈도(창)로 나누고 해당 윈도에서 원하는 연산을 수행할 수 있습니다.
기본 명령어 형식: DataFrame.rolling(window, min_periods=1).operation
window: 윈도 크기로, 윈도우 내의 데이터를 나타냅니다.
min_periods: 필수 값이 아닌 매개변수로, 윈도우 내에 최소 데이터 포인트 수를 지정합니다.
operation: 원하는 연산을 수행합니다. (예: mean(), sum(), std() 등)
1. 이동평균 구하기
import pandas as pd
data = {'Value': [1, 1, 2, 2, 10, 0, 1, 2, 3, 1]}
df = pd.DataFrame(data)
# 윈도우 크기 3으로 이동 평균 계산
rolling_mean = df['Value'].rolling(window=3).mean()
print(rolling_mean)
출력:
0 NaN
1 NaN
2 1.333333 # (1+1+2) /3
3 1.666667 # (1+2+2) /3
4 4.666667 # (2+2+10) /3
5 4.000000
6 3.666667
7 1.000000
8 2.000000
9 2.000000
Name: Value, dtype: float64
위 예시에서는 3개의 데이터를 가진 윈도를 이용하여 이동 평균을 계산했습니다.
결과에서 처음 두 값은 NaN(결측값)으로 표시되는데, 이는 윈도우 내 데이터가 부족하기 때문입니다.
그 이후에는 이동 평균이 계산되어 나타납니다.
rolling 메서드를 사용하면 데이터프레임의 시계열 데이터를 처리하거나 데이터의 이동 통계량을 계산하는 데 유용합니다. 이를 통해 데이터의 변화를 더 잘 이해하고 패턴을 파악할 수 있습니다.
2. 이동합계 구하기
위의 코드에서 mean만 sum으로 바꿔주면 됩니다.
import pandas as pd
data = {'Value': [1, 1, 2, 2, 10, 0, 1, 2, 3, 1]}
df = pd.DataFrame(data)
# 윈도우 크기 3으로 이동 평균 계산
rolling_sum = df['Value'].rolling(window=3).sum()
print(rolling_sum)
출력:
0 NaN
1 NaN
2 4.0
3 5.0
4 14.0
5 12.0
6 11.0
7 3.0
8 6.0
9 6.0
이처럼 for문 같은 것 사용하지 않고 간단하게 이동 합계나 평균을 구 할 수 있습니다.
728x90
반응형
'파이썬 > 파이썬 기초2' 카테고리의 다른 글
[파이썬 Python] 판다스 데이터프레임 인덱스 변경하기 (Index 변경) (0) | 2023.09.03 |
---|