Pandas에서 CategoricalIndex의 카테고리 이름을 변경하려면 rename_categories() 메서드를 사용합니다. 이 메서드는 기존 카테고리를 새로운 값으로 한 번에 교체할 수 있어 데이터 전처리 과정에서 매우 유용하게 활용됩니다.
라이브러리 임포트
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
CategoricalIndex 생성하기
CategoricalIndex는 제한적이고 일반적으로 고정된 개수의 가능한 값만 가질 수 있습니다. categories 매개변수를 사용해 범주형 데이터의 카테고리를 설정하고, ordered 매개변수를 사용하여 해당 범주형 데이터를 순서가 있는(ordered) 형태로 지정합니다.
catIndex = pd.CategoricalIndex(["p", "q", "r", "s", "p", "q", "r", "s"], ordered=True, categories=["p", "q", "r", "s"])
카테고리 이름 변경하기
이제 rename_categories() 메서드를 사용하여 기존 카테고리를 새로운 카테고리로 교체합니다. 새 카테고리 목록을 인자로 전달하면 기존 값들이 순서대로 대체됩니다.
print("
카테고리 이름 변경 후 CategoricalIndex...
", catIndex.rename_categories([5, 10, 15, 20]))전체 예제 코드
다음은 위 과정을 모두 포함한 전체 예제 코드입니다.
import pandas as pd
# CategoricalIndex는 제한적이고 고정된 개수의 값만 가질 수 있습니다.
# categories 매개변수로 카테고리를 설정합니다.
# ordered 매개변수로 순서가 있는 범주형으로 지정합니다.
catIndex = pd.CategoricalIndex(["p", "q", "r", "s", "p", "q", "r", "s"], ordered=True, categories=["p", "q", "r", "s"])
# CategoricalIndex 출력
print("CategoricalIndex...
", catIndex)
# 카테고리 확인
print("
CategoricalIndex의 카테고리...
", catIndex.categories)
# 카테고리 이름 변경
# 기존 카테고리를 대체할 새로운 카테고리를 설정합니다.
print("
카테고리 이름 변경 후 CategoricalIndex...
", catIndex.rename_categories([5, 10, 15, 20]))실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
CategoricalIndex... CategoricalIndex(['p', 'q', 'r', 's', 'p', 'q', 'r', 's'], categories=['p', 'q', 'r', 's'], ordered=True, dtype='category') CategoricalIndex의 카테고리... Index(['p', 'q', 'r', 's'], dtype='object') 카테고리 이름 변경 후 CategoricalIndex... CategoricalIndex([5, 10, 15, 20, 5, 10, 15, 20], categories=[5, 10, 15, 20], ordered=True, dtype='category')
정리
rename_categories() 메서드를 사용하면 CategoricalIndex의 카테고리 값을 손쉽게 다른 값으로 변환할 수 있습니다. 위 예제에서 볼 수 있듯이 문자열 카테고리('p', 'q', 'r', 's')가 숫자형 카테고리(5, 10, 15, 20)로 성공적으로 변경되었으며, 순서 정보(ordered=True)도 그대로 유지되는 것을 확인할 수 있습니다. 참고로 새 카테고리의 개수는 반드시 기존 카테고리의 개수와 동일해야 하며, 그렇지 않으면 오류가 발생합니다.