[pandas] Categorical

Bpius·2023년 5월 31일
0
post-thumbnail

Categorical

pandas에서 저수 기반의 범주형 데이터를 표현할 수 있는 특수 데이터형을 말한다.
Categorical 데이터로 간단히 변경할 수 있는데, 아래는 이제 Numpy 배열이 아닌 pandas.Catogorical의 인스턴스다.

Categorical 객체는 codes와 categories 속성을 가진다.

from_codes

from_codes 함수를 이용하여 범주형 데이터를 생성할 수 있는데, ordered 인자를 주어서 입력 순서대로 순서를 명시할 수 있다.

연산

Categorical 객체는 데이터 연산에 있어서 유용하게 사용된다.
sns에서 제공하는 타이타닉 데이터셋에서 나이의 분포로 살펴보면 0세부터 80세까지 나이가 나열된다.

이 나이를 간단히 qcut로 아기, 청소년, 성인, 노인 4등분으로 나누면 분포가 일정하지 않기에 단순히 4등분으로 나눈다고 생각하자. 이렇게 나누면 Categorical 객체를 반환한다.

분포를 보면 'Q1=0.419, 20.125] < Q2=(20.125, 28.0] < Q3=(28.0, 38.0] < Q4=(38.0, 80.0]' 4등분이 된다. 이 데이터를 기준으로 어느 범위에 들어가는지 데이터에 추가시켜 보자.
범위의 이름을 label로 지정하고 새로운 컬럼에 추가한다.

fare 요금을 3등분으로 나누어서 탑승 티켓의 요금에 따라서 survived의 확률을 보도록 하자. survived 살아남았으면 1, 아니면 0으로 1에 가까울 수록 살아남을 확률이 높다.
위의 데이터를 보면, 가격(fare = 티켓 가격의 평균)을 높게 준 범위에 있는 사람들이 살아나을 확률이 조금 더 low 컬럼의 alone값이 1에 가까운 것으로 보아 단신으로 더 많이 탑승한 것등으로 볼 수 있다.

메모리

Categorical 객체는 numpy 배열보다 낮은 메모리를 가진다.

Categorical 메서드

cat

cat은 Categorical 메서드에 접근 할 수 있도록 한다.

set_categories

카테고리가 데이터에서 4개가 넘는다면 추가할 수 있도록 해준다.

add_categories

기존 categories에 새로운 categorie를 추가한다.

remove_unused_categories

데이터에서 사용하지 않는 Category를 삭제한다.

rename_categories

기존에 지정한 categories 이름을 변경하는데 그 수는 변하지 않는다.

profile
데이터 굽는 타자기

0개의 댓글