Python - Pandas를 이용한 데이터 그룹화

cosmosJ·2024년 2월 5일

데이터 분석

목록 보기
6/26
post-thumbnail

그룹화

그룹화란, 데이터가 가지는 공통적인 속성을 바탕으로, 같은 속성을 가진 데이터들을 묶어서 표현하는 것을 의미한다.

즉, 그룹화는 데이터 그룹을 통해 특정 집단으로 구분하고, 그 대표 성질을 알기 위해 수행한다. (범주별 특징을 나타낼 수 있음)

Pandas를 이용한 그룹화

Pandasgroup by 메소드를 통해 그룹화를 지원하며, 특정 열, 열의 리스트, 행 인덱스를 통해 그룹화를 진행한다.

연산 결과로 Group By 객체를 반환하며, 해당 객체는 그룹 연산을 위한 다양한 메소드를 제공한다.

제공되는 메소드는 아래와 같다. (일부만 소개)

  • sum
  • mean / median
  • std / var
  • count
  • min / max

위와 같은 메소드를 통해 그룹의 통계적 특징을 파악할 수 있다.

GroupBy

GroupBy의 집계함수

위에서도 일부 소개했지만, 아래에서는 좀 더 다양한 집계함수를 소개한다.

집계함수내용
count그룹 내 데이터 개수
sum그룹 내 데이터의 합계
mean, median그룹 내 데이터의 평균, 중간값
min, max그룹 내 데이터의 최소값, 최대값
var, std그룹 내 데이터의 분산, 표준편차
first, last그룹 내 데이터의 첫번째 값, 마지막 값
Describe그룹 내 데이터의 기술통계량
aggregate or agg그룹 내 사용자 정의 함수와 메소드로 데이터에 적용
apply그룹 내 사용자 정의 함수와 메소드로 데이터에 적용

이외에도 다양한 함수가 존재한다. (레퍼런스 참고)

GroupBy의 apply

GroupBy 객체의 apply() 를 사용하면 그룹별로 다양한 연산이 가능하다. (내장된 집계 함수와 사용자 정의 함수를 사용할 수 있게 한다.)

예를 들어, 각 class 별 최우수 성적자를 출력할 때, 사용자 정의 함수를 생성한 뒤, 해당 메소드를 apply()를 통해 실행할 수 있다. (사용자 정의 함수는 Lamdba 식으로 대체 가능)

GroupBy의 반복 지원

GroupBy 객체는 반복작업(iteration)을 지원한다.

  • GroupBy 객체는 데이터를 그룹 이름과 그룹별 데이터를 튜플의 형태로 가지고 있다.
  • 각 튜플의 데이터는 실제 데이터가 아닌, 데이터의 인덱스를 가지고 있다.

Pandas 정렬 함수

Pandassort_values 메소드를 통해 특정 컬럼 값을 기준으로 오름차순, 내림차순 정렬(ascending = False)이 가능하다.

sort_values(by='정렬 기준 컬럼')

기준 컬럼은 리스트 형태로 여러가지를 받을 수 있으며, 리스트 형태로 받을 경우, 가장 앞의 컬럼을 기준으로 정렬하고, 이후 동일 값에 대해서는 이후의 컬럼으로 정렬된다.

sort_values(by=['정렬 기준 컬럼1', '정렬 기준 컬럼2'])

실습 코드

profile
백엔드, Data Science, AI 분야 학습 내용을 정리하는 블로그입니다.

0개의 댓글