Task : 전처리 필요 부분
1.
마지막 리뷰랑 월 별 리뷰 수에서 NaN 값이 많이 나옴. 확인해보니 리뷰 수가 아예 없을 때는 NaN으로 되는 듯. 유진 인영
2.
price의 최고가가 10000이고 최저가가 0임. 만달러는 그럴 수 있다고 쳐도(그래도 이상치일 듯) 가격이 0인 건 말이 안 되지 않나... 영은 시현
3.
name이랑 host_name에도 null값이 있음.(16개, 21개) 다니엘
4.
'minimum_nights(예약 시 요구되는 최소 숙박일수) 에 365일이 넘는 값들이 있음. 유진
5.
‘price’ 이상치 확인 유진
실행 및 진행 사항 정리
NAME 팀
NAN값 팀
minimum_nights팀
PRICE 팀 ⇒이상치를 어떻게 처리해야하는 지 생각해야 함.
결측치 처리
: room_type: neighbourhood로 대체
# name이 결측값(NaN)인 행에 대해
df.loc[df['name'].isnull(), 'name'] = (
df['room_type'] + ' : ' + df['neighbourhood']
)
# nan값 사라졌는지 확인
df['name'].isna().sum()
# 특정 행에 데이터 제대로 들어갔는지 확인
df.loc[df['id'] == 1615764]
Python
복사
: fillna 사용 host로 대체
df['host_name'].isnull().sum()
df['host_name'] = df['host_name'].fillna('host')
Python
복사
: NaN 값 그대로 두기로! or 9999-99-99( 말이 안되는 값)넣기
사용에 따라 날리기도 함. (복합분석 or 세부분석에 따라 달라질 수 있음.)
: 0으로 대체
df['reviews_per_month'].isnull().sum()
df['reviews_per_month'] = df['reviews_per_month'].fillna(0)
Python
복사
.png&blockId=21b2dc3e-f514-818b-b72b-f9aade6351bf)
