데이터 분석 작업을 하다 보면 데이터프레임(DataFrame)에서 특정 열(column)의 합계를 구해야 하는 경우가 자주 발생합니다. 이럴 때 Pandas에서 제공하는 sum() 함수를 활용하면 아주 간단하게 해결할 수 있습니다.
합계를 계산하고 싶은 열 이름을 대괄호([]) 안에 지정한 뒤 sum() 함수를 호출하면 해당 열의 전체 합계가 반환됩니다. 열의 인덱스 위치를 이용해 접근하는 방법도 가능합니다.
그럼 실제 동작 과정을 예제를 통해 살펴보겠습니다.
예제 코드
import pandas as pd
my_data = {
'Name': pd.Series(['Tom', 'Jane', 'Vin', 'Eve', 'Will']),
'Age': pd.Series([45, 67, 89, 12, 23]),
'value': pd.Series([8.79, 23.24, 31.98, 78.56, 90.20])
}
print('The dataframe is :')
my_df = pd.DataFrame(my_data)
print(my_df)
print("The sum of 'Age' column is :")
print(my_df['Age'].sum())출력 결과
The dataframe is : Name Age value 0 Tom 45 8.79 1 Jane 67 23.24 2 Vin 89 31.98 3 Eve 12 78.56 4 Will 23 90.20 The sum of 'Age' column is : 236
코드 설명
필요한 라이브러리(pandas)를 임포트하고, 사용 편의를 위해 별칭(alias) 'pd'로 지정합니다.
키(key)와 값(value)으로 구성된 시리즈(Series) 딕셔너리를 생성합니다. 여기서 값은 실제로 시리즈(Series)라는 데이터 구조입니다.
이 딕셔너리는 pandas 라이브러리의 'DataFrame' 함수에 매개변수로 전달되어 데이터프레임을 만드는 데 사용됩니다.
생성된 데이터프레임이 콘솔에 출력됩니다.
이 예제의 목표는 'Age' 열의 합계를 계산하는 것입니다.
my_df['Age']처럼 열 이름으로 해당 열을 선택한 후 sum() 함수를 호출하면 그 열의 합계가 계산됩니다.
계산된 합계(236)가 콘솔에 출력됩니다.
참고: sum() 함수의 axis 매개변수
sum() 함수는 기본적으로 axis=0(열 방향)으로 동작하여 각 열별 합계를 구합니다. 반면 axis=1로 설정하면 행(row) 방향으로 각 행의 값들을 더하게 됩니다.
# 모든 숫자형 열의 합계를 한 번에 구하기 print(my_df.sum()) # 각 행(row)별 합계 구하기 print(my_df.sum(axis=1))
이처럼 sum() 함수 하나만 제대로 활용해도 데이터프레임의 다양한 합계 연산을 손쉽게 처리할 수 있습니다. 숫자형 데이터가 아닌 문자열 열(Name 등)은 자동으로 제외되므로 별도의 전처리 없이 바로 사용할 수 있다는 점도 큰 장점입니다.