cumprod 소개
pandas.Series.cumprod()는 누적 곱 (Cumulative Product) 을 계산하는 Pandas 함수입니다.
“누적 곱” 이란, 각 값들을 차례로 곱해서 누적된 곱을 생성하는 것을 의미합니다.
수식: pct_change() 계산 방법
$\text{S}_n = \text{X}_1 \times \text{X}_2 \times \ldots \times \text{X}_n$
- $\text{S}_n$ : n 번째 누적 곱
 - $\text{X}_i$ : i 번째 값
 
사용법1 - 기본
import pandas as pd
data = {'return': [1.02, 0.98, 1.03, 0.97, 1.05]}
df = pd.DataFrame(data)
df['cumulative_return'] = df['return'].cumprod()
print(df)
출력 결과
  return  cumulative_return
0   1.02    1.0200   # 1.02
1   0.98    1.0000   # 1.02 * 0.98
2   1.03    1.0300   # 1.00 * 1.03
3   0.97    0.9991   # 1.03 * 0.97
4   1.05    1.0490   # 0.9991 * 1.05
사용법 2 - 수익률 구하기
import pandas as pd
# 일일 수익률 데이터 예제
data = {'return': [0.01, -0.02, 0.03, 0.04, -0.01]}
df = pd.DataFrame(data)
# 누적 수익률 (1 + 수익률)을 곱하여 자산 가치 추적
df['cumulative_return'] = (1 + df['return']).cumprod()
print(df)
1 을 더하는 이유는 수익률을 계산할 때, 1을 더해주어야 누적 곱을 구할 수 있습니다. 예를 들어, 0.01 (1%)의 수익률은 1 + 0.01 = 1.01로 표현됩니다.
출력 결과
   return  cumulative_return
0    0.01            1.0100
1   -0.02            0.9898
2    0.03            1.0195
3    0.04            1.0603
4   -0.01            1.0497
마지막 행은 총 누적 수익률을 나타냅니다. 예를 들어, 1.0497은 4.97%의 누적 수익률을 의미합니다.