MINERVA/Python 2022. 11. 7. 16:42
반응형

Dataframe 객체를 추출(?)이후, 정보 흐름 파악을 위해 컬럼 또는 로우간 누적 합/곱을 합니다.

 

이때 사용하는 함수로 cumsum / cumprod

가 있습니다.


위에서부터 아래로 한줄씩 덧셈/곱셈을 누적합니다.

 

1. 예제 데이타 프레임

 

df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7, 8, 9]}, index=['1', '2', '3'])

print(df)

[결과]

   A  B  C
1  1  4  7
2  2  5  8
3  3  6  9

 

2. 누적합 예제

############################
# 행누적합
print()
print(df.cumsum(axis=1))

# 열누적합
print()
print(df.cumsum(axis=0))

[결과]

   A  B   C
1  1  5  12
2  2  7  15
3  3  9  18

   A   B   C
1  1   4   7
2  3   9  15
3  6  15  24

 

3. 누적곱 예제

############################
# 행누적곱
print()
print(df.cumprod(axis=1))

# 열누적곱
print()
print(df.cumprod(axis=0))

[결과]

   A   B    C
1  1   4   28
2  2  10   80
3  3  18  162

   A    B    C
1  1    4    7
2  2   20   56
3  6  120  504

 

4. 정리

개발 언어중에, 위의 기능은 python dataframe에만 있는것으로 알고 있다.

C/C++, Java등에서 해당 기능을 구현할려면 루핑을 돌려서 처리하였는데, 역시 Python은 데이타 분석을 위한 다양한 기능이 기본으로 제공되는 것 같다.

반응형
posted by choiwonwoo
: