[KT] AIVLE School/사전학습

데이터 조작 이해와 실무 (4) - 데이터 그룹핑

Boxya 2025. 3. 12. 17:24

그룹화를 하는 이유

  • 특정 데이터 그룹의 특징에 관한 정보를 얻기 위함
  • Key별 분류 -> 각 그룹별 통계적 특징 도출

Pandas를 이용한 그룹화

  • Pandas는 데이터를 그룹 별로 분류하는 groupby 메소드가 있으며 특정 열, 열의 리스트 또는 행 인덱스를 기준으로 그룹화를 진행
  • groupby 연산 결과로 GroupBy 객체를 반환하는 것이 특징이며, 이 객체에는 그룹연산 메소드가 내장되어 있음
  • 범주별 특징을 나타낼 수 있다.
    Gropu By --> Method --> Aggregation
    sum
    mean / median
    std / var
    count
    min / max
    ...

GroupBy의 집계 함수

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

Groupby의 apply

  • Groupby 객체의 apply 함수로 그룹별 다양한 연산 가능
  • ex) grouped.apply(함수)
  • 사용자 지정 함수 사용 가능
  • lambda식과 자주 쓰이는 것이 특징

그룹별 반복 작업

  • GroupBy 객체 그룹 별 반복 작업 방식특징
    • GroupBy 객체는 반복문을 이용할 수 있음
    • GroupBy 객체는 그룹 이름과 그룹별 데이터를 튜플 형태로 갖고 있음
    • 각 그룹별 데이터는 원래의 인덱스 값을 갖고 있음

Pandas 정렬 함수

  • Pandas의 Series나 DataFrame의 sort_values 함수를 이용하면 데이터를 정렬할 수 있음
  • ex) 오름차순 정렬 : sort_values(by = '사용자수') / 내림차순 정렬 : sort_values(by = '사용자수', ascending = False)
  • ex) sort_values(by = ['강좌 개수', '개발년도'], ascending = False)
    • 강좌 개수를 기준으로 내림차순 정렬, 같은 값이 있다면 개발년도 기준으로 다시 정렬 순서 결정