교통과 날씨를 안전하게 결합
키와 관측 단위를 맞춰 교통·날씨 결합 표를 만듭니다.
진도 0%
레슨
- 기본키와 관측 단위
지역·날짜 키가 유일한지 조회하고 중복 키 목록을 반환합니다.
- 조인과 미매칭 행
지역 코드 대응표를 거쳐 LEFT JOIN하고 날씨 미매칭 행을 별도로 반환합니다.
- 합계가 부풀어 오르는 이유
관측소별 날씨를 일별 지역 단위로 먼저 집계하여 다대다 조인의 행 증가를 재현하고 수정합니다.
- 결합 표의 계약
결합 SQL과 키 제약을 저장하고 조인 전후 행 수·합계·미매칭 수를 검사합니다.
교통과 날씨를 안전하게 결합 결과물 통합
m02-sql-summary의 solution 전체와 daily.csv를 이어받습니다. 합성 관측소 날씨와 지역 코드 대응표를 추가하여 누락을 보존하는 결합 표와 감사 기록을 만듭니다.
요구사항
- 이전 원본·메타데이터·계약 테스트·daily SQL을 보존하고 queries/join.sql을 확장합니다.
- 날씨 원본 키는 지역·날짜·관측소이며 중복을 거부합니다. 지역·날짜별 유효 강수량의 같은 가중치 평균과 전체·유효 관측소 수를 계산합니다.
- 대응표 region 유일성을 검사하고 daily 기준 두 LEFT JOIN으로 mapping_missing·weather_missing·rain_missing을 구분합니다.
- joined.csv와 join-audit.json에 전후 행 수·합계·상태별 누락 수를 기록하고 입력 바이트와 재실행 출력을 보존합니다.
완료 기준
- python3 -m unittest discover -s tests -v: 기존19개와 결합10개 총29개 통과, starter는 새 테스트 일부 실패합니다.
- 관측소 여러 곳·NULL과0·대응 누락·날씨 빈 표·교통 빈 표·각 입력 키 중복·음수와 비유한 강수 fixture를 검사합니다.
- python3 pipeline.py 후 python3 join_pipeline.py: 교통 전후6행·390대, 날씨 행 누락1·강수값 결측1, A/9월1일 평균3mm입니다.
python3 -m unittest discover -s tests -v미션 시작 코드
모범 답안
모범 답안 내려받기검토 기준
- 판단 근거와 제외 조건을 데이터와 연결해 설명합니다.
- 앞 단계 산출물을 재사용하고 원본을 보존합니다.