텍스트 필터로 레코드 제거하기
클라이언트에게 질문을 많이 하고, 변수의 의미를 충분히 파악하는 데 시간을 들이는 게 중요해요. 부동산 업계에서 assumable mortgage는 드문 경우이고, 이를 제외하자는 클라이언트의 제안을 받았다고 가정해 봅시다. 이 연습에서는 like()와 비슷하지만 단일 값 대신 값의 목록을 필터로 전달할 수 있는 isin()을 사용해 보겠습니다.
이 연습은 강의의 일부입니다
PySpark로 하는 Feature Engineering
연습 안내
select()와show()를 사용해 'ASSUMABLEMORTGAGE' 열의 고유 값을 살펴보고, 문자열 'Yes'를 포함하는 모든 값을 담은 리스트yes_values를 만드세요.~df['ASSUMABLEMORTGAGE'],isin(),.isNull()을 사용해, 리스트yes_values에 해당하는 값을 포함한 레코드를 제거하고 null 값은 유지하는 NOT 필터를 생성하세요. 이 필터를 변수text_filter에 저장하세요.where()로text_filter를df에 적용하세요.df에 남아 있는 레코드 수를 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Inspect unique values in the column 'ASSUMABLEMORTGAGE'
df.____([____]).distinct().____()
# List of possible values containing 'yes'
yes_values = [____, ____]
# Filter the text values out of df but keep null values
text_filter = ~df['ASSUMABLEMORTGAGE'].isin(____) | df['ASSUMABLEMORTGAGE'].isNull()
df = df.____(text_filter)
# Print count of remaining records
print(____.____())