Pandas Index에 범주형(categorical) 데이터가 저장되어 있는지 확인하려면 index.is_categorical() 메서드를 사용하면 됩니다. 이 메서드는 인덱스가 범주형 데이터를 담고 있으면 True, 그렇지 않으면 False를 반환합니다.
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
astype() 메서드를 사용해 데이터 타입을 category로 지정한 Pandas 인덱스를 생성해 보겠습니다.
index = pd.Index(["Electronics","Accessories","Furniture"]).astype("category")생성된 Pandas 인덱스를 화면에 출력합니다.
print("Pandas Index...\n",index)이제 해당 인덱스가 범주형 데이터를 포함하는지 확인해 봅니다.
print("\nDoes Index holds categorical data?\n",index.is_categorical())전체 예제 코드
다음은 위 과정을 하나로 정리한 전체 코드입니다.
import pandas as pd
# Pandas 인덱스 생성
index = pd.Index(["Electronics","Accessories","Furniture"]).astype("category")
# Pandas 인덱스 출력
print("Pandas Index...\n",index)
# 인덱스의 요소 개수 반환
print("\nNumber of elements in the index...\n",index.size)
# 데이터의 dtype 반환
print("\nThe dtype...\n",index.dtype)
# 인덱스가 범주형 데이터를 포함하는지 확인
print("\nDoes Index holds categorical data?\n",index.is_categorical())실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Pandas Index... CategoricalIndex(['Electronics', 'Accessories', 'Furniture'], categories=['Accessories', 'Electronics', 'Furniture'], ordered=False, dtype='category') Number of elements in the index... 3 The dtype... category Does Index holds categorical data? True
참고 사항
출력 결과에서 알 수 있듯이, astype("category")로 변환된 인덱스는 일반 Index가 아닌 CategoricalIndex가 되며, dtype 역시 category로 표시됩니다. 따라서 is_categorical()은 True를 반환하게 됩니다.
한 가지 유의할 점은, 최신 버전의 Pandas에서는 is_categorical() 메서드가 더 이상 권장되지 않는다는 것입니다. 최신 환경에서는 dtype을 직접 비교하는 방식을 사용하는 것이 좋습니다.
# 최신 방식: dtype으로 직접 확인 print(index.dtype == "category") # True
두 방식 모두 동일한 결과를 제공하지만, 코드의 호환성과 유지보수를 고려하면 dtype 기반 확인 방법을 사용하는 것이 바람직합니다.