시작하기무료로 시작하기

DataFrame의 서열형(Ordinal) 인코딩

범주형 특성은 주로 원-핫 인코딩과 서열형(ordinal) 인코딩 두 가지 방법으로 인코딩할 수 있어요. 원-핫 인코딩에서는 각 범주가 하나의 열이 되며, 각 행에서 해당 범주 열은 1, 나머지는 0이 됩니다. 서열형 인코딩에서는 범주를 0부터 범주 수만큼의 정수 값으로 매핑해요.

이 연습 문제에서는 users DataFrame의 모든 열을 순회하면서 서열형 인코딩을 적용하겠습니다. 또한 각 열에 대한 인코더를 딕셔너리 ordinal_enc_dict에 저장해, 인코딩된 열을 원래 범주로 되돌릴 수 있도록 할 거예요.

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

Python에서 결측치 다루기

강의 보기

연습 안내

  • 빈 딕셔너리 ordinal_enc_dict를 정의하세요.
  • 각 열마다 Ordinal Encoder 객체를 생성하세요.
  • users에서 해당 열의 null이 아닌 값만 선택해 인코딩하세요.
  • 인코딩한 값을 users의 각 열(col_name)에서 null이 아닌 위치에 다시 할당하세요.

실습형 인터랙티브 연습

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

# Create an empty dictionary ordinal_enc_dict
ordinal_enc_dict = ___

for col_name in users:
    # Create Ordinal encoder for col
    ordinal_enc_dict[col_name] = ___
    col = users[col_name]
    
    # Select non-null values of col
    col_not_null = ___
    reshaped_vals = col_not_null.values.reshape(-1, 1)
    encoded_vals = ordinal_enc_dict[col_name].fit_transform(reshaped_vals)
    
    # Select the non-null values for the column col_name in users and store the encoded values
    users.loc[___, ___] = np.squeeze(encoded_vals)
코드 편집 및 실행