<aside> 📌 Task : 과정 정리
</aside>
<aside>
📍 조건 1) 도심/외곽 별 편차
📍 조건 2) 룸 타입 별 편차
📍 우수 VS 비우수 숙소 기준 설정 → 조건별 세분화
📍 365 컬럼까지 같이 분석 → 운영 / 미운영 처리 방안 토론
</aside>
<aside>
1️⃣ 도심 & 전체실 시현
2️⃣ 도심 & 개인실 영은
3️⃣ 도심 & 공유실 인영
1️⃣ 외곽 & 전체실 다니엘
2️⃣ 외곽 & 개인실 유진
(3️⃣ 외곽 & 공유실)
</aside>
<aside> 📌 실행 및 진행 사항 정리
<aside>
시현영은3️⃣ 도심 & 공유실 인영
1️⃣ 외곽 & 전체실 다니엘
2️⃣ 외곽 & 개인실 유진
3️⃣ 외곽 & 공유실
</aside>
<aside> 📌 결과
</aside>
<aside>
조합 상위 25% 숙소 수
0 도심 & Entire home/apt 2856
1 도심 & Private room 1813
2 도심 & Shared room 92
3 외곽 & Entire home/apt 2228
4 외곽 & Private room 2602
5 외곽 & Shared room 119
</aside>
<aside>
조합 하위 25% 숙소 수
0 도심 & Entire home/apt 2856
1 도심 & Private room 1813
2 도심 & Shared room 92
3 외곽 & Entire home/apt 2228
4 외곽 & Private room 2602
5 외곽 & Shared room 119
</aside>
<aside>
| 조합 | 상위 25% 중 예약 가능일 0일 | 하위 25% 중 예약 가능일 0일 |
|---|---|---|
| 도심 & Entire home/apt | 174 | 2282 |
| 도심 & Private room | 151 | 1521 |
| 도심 & Shared room | 5 | 65 |
| 외곽 & Entire home/apt | 71 | 1656 |
| 외곽 & Private room | 166 | 1860 |
| 외곽 & Shared room | 6 | 43 |
# 조합 정의
combinations = [
('도심', 'Entire home/apt'),
('도심', 'Private room'),
('도심', 'Shared room'),
('외곽', 'Entire home/apt'),
('외곽', 'Private room'),
('외곽', 'Shared room'),
]
results = []
# 각 조합별로 상/하위 25%에서 예약 가능일 0인 숙소 수 세기
for region, room in combinations:
cond = (df_filtered['city_and_suburb'] == region) & (df_filtered['room_type'] == room)
subset = df_filtered[cond]
if len(subset) < 10:
continue # 데이터 수 너무 적은 조합은 스킵
q75 = subset['popularity_score'].quantile(0.75)
q25 = subset['popularity_score'].quantile(0.25)
top = subset[(subset['popularity_score'] >= q75) & (subset['availability_365'] == 0)]
bottom = subset[(subset['popularity_score'] <= q25) & (subset['availability_365'] == 0)]
results.append({
'조합': f"{region} & {room}",
'상위 25% 중 예약 가능일 0일': len(top),
'하위 25% 중 예약 가능일 0일': len(bottom)
})
# 데이터프레임으로 변환
grouped_avail_zero = pd.DataFrame(results)
grouped_avail_zero
</aside>