인프런 커뮤니티 질문&답변

sj님의 프로필 이미지
sj

작성한 질문수

빅데이터 분석기사 시험 실기(Python)

7강. 작업유형2-데이터 전처리

제7강 작업유형2-데이터 전처리: LabelEncoder 문법

작성

·

318

0

from sklearn.preprocessing import LabelEncoder
label=['species','island','sex'] 
enc=LabelEncoder() 
df[label]=df[label].apply(enc.fit_transform) 
#df[label]=enc.fit_transform(df[label])  

LabelEncoder 단계에서 apply 함수를 활용해서 fit_transform을 적용해야하는 이유는 무엇인가요?

아래 #처리된 구문처럼 적용하니 에러가 뜹니다

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

LabelEncoder는 카테고리형 데이터를 숫자형 데이터로 변환해주는 역할을 합니다. apply 함수를 이용해서 LabelEncoder를 적용해야하는 이유는, apply 함수를 사용하면 함수를 열 또는 행에 적용시킬 수 있기 때문입니다.

df[label]은 species, island, sex 열을 선택한 것입니다. 이 열들은 카테고리형 데이터이므로 LabelEncoder를 적용해주어야 합니다. apply 함수를 사용하면, 선택된 열들 모두에 대해서 LabelEncoder를 적용할 수 있습니다. 만약 #처리된 구문을 적용하게 되면, df[label]의 전체 열에 대해서 fit_transform을 적용하게 됩니다. 이는 데이터 형식이 달라서 에러가 발생하는 것입니다.

즉, apply 함수를 사용하여 열 단위로 적용하는 것이 올바른 방법입니다.

더 자세한 내용은 아래 링크의 공식 문서를 참고하시기 바랍니다.

https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html

감사합니다.

sj님의 프로필 이미지
sj

작성한 질문수

질문하기