시작하기무료로 시작하기

범주형 열의 서열(ordinal) 인코딩

범주형 값을 대치(impute)하려면 수치형 값을 대치할 때보다 몇 가지 추가 단계가 필요해요. 문자열에는 통계 연산을 적용할 수 없기 때문에, 먼저 수치형으로 변환해야 합니다.

이번에는 레스토랑이 기록한 고객 선호와 선택이 담긴 사용자 프로필 데이터셋을 사용해요. 이 데이터셋은 범주형 특성만 포함합니다. 이 연습 문제에서는 sklearnOrdinalEncoder를 사용해 범주형 열 'ambience'를 수치형으로 변환해 보겠습니다. DataFrame은 users라는 이름으로 로드되어 있어요. OrdinalEncoder() 함수도 이미 로드되어 있습니다.

users DataFrame의 head()tail() 출력도 제공되어 있어요.

이 연습은 강의의 일부입니다

Python에서 결측치 다루기

강의 보기

연습 안내

  • 서열 인코더 객체를 생성해 ambience_ord_enc에 할당하세요.
  • users'ambience' 열에서 결측이 아닌 값을 선택하세요.
  • ambience_not_null의 형태를 (-1, 1)로 재구성하세요.
  • 결측이 아닌 ambience 값들을 인코딩된 값으로 교체하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Set col_name to 'ambience'
col_name = 'ambience'
# Create Ordinal encoder
ambience_ord_enc = ___

# Select non-null values of ambience column in users
ambience = users[col_name]
ambience_not_null = ___

# Reshape ambience_not_null to shape (-1, 1)
reshaped_vals = ___

# Select the non-null values for the column col_name in users and store the encoded values
encoded_vals = ambience_ord_enc.fit_transform(reshaped_vals)
users.loc[___, col_name] = np.squeeze(encoded_vals)
코드 편집 및 실행