Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas CategoricalIndex – 딕셔너리 형태의 새 범주로 범주 이름 변경하기

Pandas에서 CategoricalIndex의 범주 이름을 딕셔너리(dict) 형태의 새 범주로 변경하려면 rename_categories() 메서드를 사용하면 됩니다. 이 메서드는 기존 범주를 키(key)로, 새 범주를 값(value)으로 매핑하여 한 번에 손쉽게 이름을 바꿀 수 있게 해줍니다.

1. 필요한 라이브러리 가져오기

먼저 pandas 라이브러리를 임포트합니다.

import pandas as pd

2. 순서가 있는 CategoricalIndex 생성

CategoricalIndex는 제한적이고 일반적으로 고정된 개수의 가능한 값만 가질 수 있습니다. ordered=True 파라미터를 사용하면 범주에 순서를 부여할 수 있습니다.

catIndex = pd.CategoricalIndex(["p", "q", "r", "s", "p", "q", "r", "s"], ordered=True, categories=["p", "q", "r", "s"])

3. CategoricalIndex 출력하기

생성된 CategoricalIndex를 화면에 출력해 확인합니다.

print("CategoricalIndex...\n", catIndex)

4. 범주 이름 변경하기

rename_categories() 메서드에 딕셔너리를 전달하여 기존 범주('p', 'q', 'r', 's')를 숫자형 새 범주(5, 10, 15, 20)로 교체합니다.

print("\nCategoricalIndex after renaming categories...\n", catIndex.rename_categories({'p': 5, 'q': 10, 'r': 15, 's': 20}))

전체 예제 코드

아래는 위 과정을 모두 포함한 전체 코드입니다.

import pandas as pd

# CategoricalIndex는 제한적이고 고정된 개수의 값만 가질 수 있습니다.
# ordered 파라미터를 사용해 순서가 있는 범주형 데이터로 만듭니다.
catIndex = pd.CategoricalIndex(["p", "q", "r", "s", "p", "q", "r", "s"],
                               ordered=True,
                               categories=["p", "q", "r", "s"])

# CategoricalIndex 출력
print("CategoricalIndex...\n", catIndex)

# 범주(categories) 확인
print("\nDisplaying Categories from CategoricalIndex...\n", catIndex.categories)

# 딕셔너리 형태의 새 범주로 기존 범주 이름 변경
print("\nCategoricalIndex after renaming categories...\n",
      catIndex.rename_categories({'p': 5, 'q': 10, 'r': 15, 's': 20}))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

CategoricalIndex...
CategoricalIndex(['p', 'q', 'r', 's', 'p', 'q', 'r', 's'], categories=['p', 'q', 'r', 's'], ordered=True, dtype='category')

Displaying Categories from CategoricalIndex...
Index(['p', 'q', 'r', 's'], dtype='object')

CategoricalIndex after renaming categories...
CategoricalIndex([5, 10, 15, 20, 5, 10, 15, 20], categories=[5, 10, 15, 20], ordered=True, dtype='category')

정리

rename_categories() 메서드는 리스트뿐만 아니라 딕셔너리도 지원하기 때문에, 특정 범주만 선택적으로 이름을 바꾸거나 문자열을 숫자 코드로 변환하는 등 유연한 범주 관리가 가능합니다. 다만 딕셔너리 방식을 사용할 때는 기존 범주의 개수와 새 범주의 개수가 일치해야 하며, 존재하지 않는 키를 사용하면 오류가 발생할 수 있다는 점에 유의하세요.