본문 바로가기
데이터 분석/데이터 전처리

[Pandas] 38. 특정 칼럼(Pandas Series)의 누적합, 누적곱, 누적 최대값, 누적 최소값 구하기(feat. cumsum, cumprod, cummax, cummin)

by 부자 꽁냥이 2023. 1. 18.

안녕하세요~ 꽁냥이입니다. 이번 포스팅에서는 Pandas에서 제공하는 누적합(cumsum), 누적곱(cumprod), 누적 최대값(cummax), 누적 최소값(cummin)을 구하는 방법을 알아보고자 합니다.


   누적값 구하기

1) 누적합 : cumsum

누적합은 배열의 첫 번째 원소부터 다음 원소로 진행해가면서 값을 계속 더해나가는 것을 말합니다. Pandas에서는 Series 객체의 cumsum 메서드를 이용하면 누적합을 계산할 수 있습니다. 이때 NaN을 만나면 NaN을 출력하고 그 다음 부터는 무시합니다.

 

import pandas as pd
import numpy as np

data = [1,2,3,7,np.nan,10,1]

print(pd.Series(data).cumsum())

 

만약 NaN를 쭉 무시하지 않고 싶다면 skipna=False로 지정합니다.

 

print(pd.Series(data).cumsum(skipna=False))

 

위 코드를 실행하면 NaN를 만나는 순간부터 누적합은 계속 NaN이 되는 것을 알 수 있습니다.


2) 누적곱 : cumprod

누적곱은 배열의 첫 번째 원소부터 다음 원소로 진행해가면서 값을 계속 곱해나가는 것을 말합니다. Pandas에서는 Series 객체의 cumprod 메서드를 이용하면 누적곱을 계산할 수 있습니다. 이때 NaN을 만나면 NaN을 출력하고 그 다음 부터는 무시합니다. 무시하지 않고자 한다면 skipna=False로 지정하면 됩니다.

 

print(pd.Series(data).cumprod())

 


3) 누적 최대값 : cummax

누적 최대값은 배열의 첫 번째 원소부터 다음 원소로 진행해 가면서 최대값을 계속 갱신하는 것을 말합니다. Pandas에서는 Series 객체의 cummax 메서드를 이용하면 누적 최대값을 계산할 수 있습니다. 이때 NaN을 만나면 NaN을 출력하고 그다음부터는 무시합니다. 무시하지 않고자 한다면 skipna=False로 지정하면 됩니다.

 

print(pd.Series(data).cummax())

 


4) 누적 최소값 : cummin

누적 최소값은 배열의 첫 번째 원소부터 다음 원소로 진행해 가면서 최소값을 계속 갱신하는 것을 말합니다. Pandas에서는 Series 객체의 cummin 메서드를 이용하면 누적 최소값을 계산할 수 있습니다. 이때 NaN은 무시합니다. 무시하지 않고자 한다면 skipna=False로 지정하면 됩니다.

 

print(pd.Series(data).cummin())

 


이번 포스팅에서는 여러 가지 누적값을 계산하는 방법을 알아보았습니다. 부디 이번 포스팅이 많은 분들께 도움이 되시길 바라며 이상 포스팅 마치겠습니다.


댓글


맨 위로