
그룹화란, 데이터가 가지는 공통적인 속성을 바탕으로, 같은 속성을 가진 데이터들을 묶어서 표현하는 것을 의미한다.
즉, 그룹화는 데이터 그룹을 통해 특정 집단으로 구분하고, 그 대표 성질을 알기 위해 수행한다. (범주별 특징을 나타낼 수 있음)
Pandas를 이용한 그룹화Pandas는 group by 메소드를 통해 그룹화를 지원하며, 특정 열, 열의 리스트, 행 인덱스를 통해 그룹화를 진행한다.
연산 결과로 Group By 객체를 반환하며, 해당 객체는 그룹 연산을 위한 다양한 메소드를 제공한다.
제공되는 메소드는 아래와 같다. (일부만 소개)
summean / medianstd / varcount min / max위와 같은 메소드를 통해 그룹의 통계적 특징을 파악할 수 있다.
위에서도 일부 소개했지만, 아래에서는 좀 더 다양한 집계함수를 소개한다.
| 집계함수 | 내용 |
|---|---|
| count | 그룹 내 데이터 개수 |
| sum | 그룹 내 데이터의 합계 |
| mean, median | 그룹 내 데이터의 평균, 중간값 |
| min, max | 그룹 내 데이터의 최소값, 최대값 |
| var, std | 그룹 내 데이터의 분산, 표준편차 |
| first, last | 그룹 내 데이터의 첫번째 값, 마지막 값 |
| Describe | 그룹 내 데이터의 기술통계량 |
| aggregate or agg | 그룹 내 사용자 정의 함수와 메소드로 데이터에 적용 |
| apply | 그룹 내 사용자 정의 함수와 메소드로 데이터에 적용 |
이외에도 다양한 함수가 존재한다. (레퍼런스 참고)
GroupBy 객체의 apply() 를 사용하면 그룹별로 다양한 연산이 가능하다. (내장된 집계 함수와 사용자 정의 함수를 사용할 수 있게 한다.)
예를 들어, 각 class 별 최우수 성적자를 출력할 때, 사용자 정의 함수를 생성한 뒤, 해당 메소드를 apply()를 통해 실행할 수 있다. (사용자 정의 함수는 Lamdba 식으로 대체 가능)
GroupBy 객체는 반복작업(iteration)을 지원한다.
GroupBy 객체는 데이터를 그룹 이름과 그룹별 데이터를 튜플의 형태로 가지고 있다.Pandas는 sort_values 메소드를 통해 특정 컬럼 값을 기준으로 오름차순, 내림차순 정렬(ascending = False)이 가능하다.
sort_values(by='정렬 기준 컬럼')
기준 컬럼은 리스트 형태로 여러가지를 받을 수 있으며, 리스트 형태로 받을 경우, 가장 앞의 컬럼을 기준으로 정렬하고, 이후 동일 값에 대해서는 이후의 컬럼으로 정렬된다.
sort_values(by=['정렬 기준 컬럼1', '정렬 기준 컬럼2'])