파이썬/데이터프레임 다루기

Pandas에서 Category 타입 활용하기

Data Jun 2025. 8. 31. 13:21

데이터를 정렬하거나 groupby를 사용할 때, 우리가 원하는 순서대로 결과를 보고 싶을 때가 있습니다. 예를 들어 옷 사이즈 데이터를 다룰 때, 알파벳 순서가 아니라 XS → S → M → L → XL 순서대로 정렬되고 집계되면 훨씬 직관적이겠죠?

이럴 때 바로 Category 타입을 활용하면 됩니다.

 

Category 타입으로 변환하기

pd.Categorical() 함수에 데이터를 넣고, ordered=True로 설정하면 범주형 데이터에 순서를 부여할 수 있습니다.
또한 categories 파라미터에 원하는 순서를 직접 지정할 수 있습니다.

import pandas as pd

clothes_df['size'] = pd.Categorical(
    clothes_df['size'],
    ordered=True,
    categories=['XS', 'S', 'M', 'L', 'XL']
)

이렇게 하면 size 컬럼이 단순한 문자열이 아니라, 순서를 가진 범주형(category) 데이터로 바뀝니다.

 

정렬하기

이제 sort_values를 해보면 알파벳 순서가 아니라, 우리가 지정한 XS → S → M → L → XL 순서대로 정렬됩니다.

clothes_df.sort_values(by='size')

 

 

Groupby 활용

groupby를 적용해도 순서가 반영됩니다.

clothes_df.groupby('size').mean()

Category 타입 덕분에, 집계 결과도 사이즈 순서대로 보기 쉽게 정렬됩니다.

 

정리

  • pd.Categorical()로 범주형 데이터를 만들 수 있음
  • ordered=True와 categories 파라미터로 원하는 순서 지정 가능
  • 정렬(sort_values), 집계(groupby), 시각화(seaborn)에 모두 반영

💡 Category 타입은 단순히 메모리를 아끼는 용도뿐만 아니라, 데이터를 논리적인 순서대로 다루는 데 꼭 필요한 기능입니다.