코딩재개발 RSS 태그 관리 글쓰기 방명록
2022-04-28 21:28:10

오늘은 SQL의 GROUP BY와 비슷한 역할을 하는 판다스 데이터프레임의 groupby 메소드에 대해 알아보도록 하겠습니다. SQL에서 GROUP BY는 집계 함수(평균, 최대값, 최소값 등)와 함께 사용되는 것처럼 판다스 데이터프레임의 groupby 메소드도 mean(), max() 등의 메소드와 같이 사용됩니다. 

 

백문이 불여일견이라고 간단한 예제를 통해 groupby 메소드의 사용법을 살펴보도록 하겠습니다. 다음과 같이 여러 사람의 국적과 연봉을 담고 있는 데이터프레임이 있다고 가정하겠습니다.

 

import pandas as pd

dict_data = {'국적':['한국', '일본', '중국', '미국', '중국', '한국', '미국', '러시아', '한국', '한국', '이탈리아'], 
'연봉':[4000, 6200, 2500, 8600, 3000, 5600, 6800, 3800, 5200, 3300, 4400]}
df = pd.DataFrame(dict_data)

print(df)

 

 

국적을 기준으로 그룹을 지어서 국적별 연봉 평균을 알아보도록 하겠습니다. 

 

print(df.groupby(['국적']).mean())

 

 

이와 같이 groupby와 mean을 활용해서 간단히 국적별 평균 연봉을 구할 수 있습니다. 제대로 계산된 건지 확인해볼까요? 국적이 한국인 사람이 총 4명이고, 각각 4000, 5600, 5200, 3300의 연봉이므로 모두 더해서 4로 나눠보니 4525가 맞네요.^^

 

이번에는 국적별 최대 연봉자의 연봉을 알아볼까요? max 메소드를 활용하면 되겠죠?

 

print(df.groupby(['국적']).max())

 

 

 

관련 글

[1] [MariaDB] Group by로 그룹화된 그룹의 개수

* 글을 읽던 중에 궁금했던 부분은 질문해주세요.
* 칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.
* 최대한 답변 드리도록 노력하겠습니다.
* 욕설과 광고를 담은 댓글은 가차없이 삭제합니다.
* 티스토리 회원인데, 로그인이 풀린 경우에는 우측 상단에 있는 물음표 아이콘을 클릭해주세요.
비밀글