[python+pandas] groupby 메소드로 그룹의 평균값, 최대값 산출하기 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로 그룹화된 그룹의 개수

반응형
secret
-
+