<aside> 📌 Task : 오전 질문 - 길래 튜터님
</aside>
<aside> 1️⃣
availability_365 : 1년(365일) 중 예약 가능한 일수
365일이 넘는 값들을 드랍해도 되는지 (수빈 튜터님은 OK 하셨습니당)
1년 넘게 장기 투숙하시는 고객님들도 있지 않을까요? 1250일이 최대!
</aside>
<aside> 2️⃣
가격 이상치 처리





<aside> 3️⃣
결측치 제거 1
리뷰 작성 이력이 없음
→ 숙소에 남겨진 리뷰가 한 건도 없음 (last_review 값이 없음)
월별 평균 리뷰 수 없음
→ 최근 몇 달 동안 이용된 흔적이 없음 (reviews_per_month 값이 없음)
누적 리뷰 수가 0건
→ 과거에도 한 번도 리뷰를 받은 적이 없음
예약 가능 일수가 0일
→ 1년 중 단 하루도 예약을 받을 수 없는 상태
# 조건에 맞는 숙소 필터링
inactive_listings = df[
df['last_review'].isnull() &
df['reviews_per_month'].isnull() &
(df['number_of_reviews'] == 0) &
(df['availability_365'] == 0)
]
# 해당 숙소 개수 출력
print("운영하지 않는 것으로 판단되는 숙소 수:", len(inactive_listings))

</aside>
<aside> 4️⃣
결측치 제거 2
# 지역별 평균, 중앙값, 최대 가격 확인
price_stats = df.groupby('neighbourhood_group')['price'].agg(['mean', 'median', 'max', 'count']).sort_values(by='mean')
print(price_stats)

지역별 평균은 최대 200달러 인데,
최대 가격이 너무나 큼. ⇒ but 이상치를 바로 제거 하는 것이 아니라.
비활성 숙소라고
# 1. 고가 숙소 필터링
high_price_df = df[df['price'] > 1000]
# 2. 운영되지 않는 고가 숙소만 필터링 (리뷰도 없고 예약도 안받음)
inactive_high_price = high_price_df[
high_price_df['last_review'].isnull() &
high_price_df['reviews_per_month'].isnull() &
(high_price_df['availability_365'] == 0)
]
# 3. 고가 숙소 중 운영되는 애들만 남기기
high_price_active = high_price_df.drop(inactive_high_price.index)
# 4. 결과 확인
print(f"총 고가 숙소 수: {len(high_price_df)}개")
print(f"운영 안 하는 고가 숙소 수: {len(inactive_high_price)}개")
print(f"운영 중인 고가 숙소 수: {len(high_price_active)}개")
# 5. (선택) 상위 30개 보기
display(high_price_active.head(30))
last_review 값 없음)reviews_per_month 값 없음)availability_365 = 0)→ 위 조건은 리뷰도 없고, 최근 활동도 없으며, 예약도 불가능한 숙소를 의미한다고 생각 했습니다.
</aside>
<aside> 📌 Task : 오후 질문 - 수빈 튜터님
</aside>
<aside> 5️⃣
가격 x 리뷰 수 → 수익 파생 컬럼 생성
</aside>
<aside> 6️⃣
last_review : NaN값으로만 둬도 되는지
</aside>
<aside> 📌 결과
</aside>