-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
lambda 함수를 제외하고 get_category 함수를 적용하는 방법에 대해 알고싶습니다.
21.06.10 23:20 작성 조회수 182
0
강의 코드에 나와있는
답변을 작성해보세요.
1
권 철민
지식공유자2021.06.11
안녕하십니까,
어떻게 변경을 하셨다는 건지 정확히는 모르겠지만, 말씀하신대로
titanic_df['Age_cat'] = titanic_df['Age'].apply(lambda x : get_category(x))를
titanic_df['Age_cat'] = titanic_df['Age'].apply(lambda x : titanic_df['Age']) 로 변경했다고 가정한다면 오류가 생기는건 당연해 보입니다만... ^^;;
apply(lambda) 식을 하겠다는 것은 한개의 레코드(로우)별로 체크를 해서 변환을 하겠다는 의미입니다. Pandas DataFrame은 기본적으로 레코드 단위가 아닌 컬럼 단위로 일괄 변환을 선호 합니다. 그래서 레코드 단위로 변환을 해야 할때는 위와 같이 apply lambda 식을 적용합니다. 왜나햐면 'Age'는 연속형 실수 값이고, 이를 변환하는 로직은 한 건씩 데이터를 확인 한 뒤에 category값으로 변환을 하는게 가장 쉽게 변환할 수 있는 방법이기 때문입니다.
titanic_df['Age'].apply(lambda x : get_category(x))를 적용하면, 1건의 Age 값이 x로 입력 되고, 이것이 get_category(x)와 같이 인자로 입력됩니다. 이런 변환 외에는 apply lambda 식에 get_category()함수를 풀어서 넣어야 하는데, 이게 오히려 더 어렵습니다.
답변 1