Python Pandas에서 데이터를 특정 열을 기준으로 그룹화한 뒤 합계를 구하려면 groupby(columns).sum() 메서드를 사용하면 됩니다. 이 방법은 지정한 열을 기준으로 행들을 묶어 각 그룹의 숫자 데이터를 한 번에 집계할 수 있어, 데이터 분석에서 가장 널리 쓰이는 기법 중 하나입니다.
처리 순서
- 2차원이면서 크기 변경이 가능하고, 서로 다른 자료형도 담을 수 있는 표 형태의 데이터(DataFrame)인 df를 생성합니다.
- 입력 DataFrame인 df를 출력해 내용을 확인합니다.
- df.groupby().sum()을 사용해 그룹별 합계를 계산합니다. 이 함수는 지정된 열의 값을 먼저 정렬한 뒤, 정렬된 기준에 따라 나머지 열들의 값도 함께 그룹화하여 집계합니다.
- 그룹별 합계 결과를 출력합니다.
예제 코드
import pandas as pd
df = pd.DataFrame(
{
"Apple": [5, 2, 7, 0],
"Banana": [4, 7, 5, 1],
"Carrot": [9, 3, 5, 1]
}
)
print("입력 DataFrame:\n", df)
g_sum = df.groupby(["Apple"]).sum()
print("Apple 기준 그룹별 합계:\n", g_sum)실행 결과
입력 DataFrame:
Apple Banana Carrot
0 5 4 9
1 2 7 3
2 7 5 5
3 0 1 1
Apple 기준 그룹별 합계:
Banana Carrot
Apple
0 1 1
2 7 3
5 4 9
7 5 5참고 사항
위 실행 결과에서 볼 수 있듯이, groupby()는 기준 열(Apple)의 고유값을 인덱스로 사용하며 각 그룹에 속한 행들의 나머지 열 값을 모두 더해 반환합니다.
또한 두 개 이상의 열을 기준으로 그룹화하고 싶다면 df.groupby(['열1', '열2']).sum()처럼 열 이름을 리스트로 전달하면 됩니다. 그룹화된 결과를 일반 DataFrame 형태로 되돌리고 싶다면 마지막에 .reset_index()를 추가로 호출하면 편리합니다.