더북(TheBook)

Note ≡ 추가 내용: 순서가 있는 특성 인코딩하기


순서가 있는 특성의 범주 사이에서 수치적 크기에 대해 확신이 없거나 두 범주 사이의 순서를 정의할 수 없다면 임계 값을 사용하여 0/1로 인코딩할 수 있습니다. 예를 들어 M, L, XL 값을 가진 특성 size를 두 개의 새로운 특성 'x > M''x > L'로 나눌 수 있습니다.

>>> df = pd.DataFrame([['green', 'M', 10.1, 'class2'], 
...                    ['red', 'L', 13.5, 'class1'], 
...                    ['blue', 'XL', 15.3, 'class2']]) 
>>> df.columns = ['color', 'size', 'price', 'classlabel']
>>> df

 

판다스 데이터프레임의 apply 메서드를 사용하여 임계 값 기준으로 특성을 인코딩하는 lambda 함수를 적용할 수 있습니다.

>>> df['x > M'] = df['size'].apply(lambda x: 1 if x in {'L', 'XL'} else 0) 
>>> df['x > L'] = df['size'].apply(lambda x: 1 if x == 'XL' else 0) 
>>> del df['size']
>>> df
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.