안녕하세요~ 꽁냥이입니다. 이번 포스팅에서는 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())
이번 포스팅에서는 여러 가지 누적값을 계산하는 방법을 알아보았습니다. 부디 이번 포스팅이 많은 분들께 도움이 되시길 바라며 이상 포스팅 마치겠습니다.
'데이터 분석 > 데이터 전처리' 카테고리의 다른 글
[Pandas] 40. 데이터프레임(DataFrame)의 특정 칼럼으로 데이터 순위 매기기 (feat. rank) (2) | 2023.01.21 |
---|---|
[Pandas] 39. 데이터프레임 열(칼럼) 또는 행 똑같이 맞추기 (feat. align) (0) | 2023.01.19 |
[Pandas] 37. 여러가지 통계량 구하기 (0) | 2023.01.18 |
[Pandas] 36. 특정 칼럼 정렬되어 있는지 확인하기 (feat. is_monotonic_increasing, is_monotonic_decreasing) (0) | 2023.01.18 |
[Pandas] Tip!! 원하는 데이터 구간 만들기 (feat. IntervalIndex.from_tuples) (0) | 2023.01.17 |
댓글