Devin.KR

Python 자료형과 정제

결합 표의 날짜·숫자를 정리하고 결측 처리 영향을 비교합니다.

진도 0%

레슨

  1. 변수와 조건으로 행 검사

    표준 입력 JSON의 통행량을 숫자로 검증하고 오류 행 번호를 출력합니다.

  2. 리스트와 집합으로 중복 찾기

    지역·날짜 키를 튜플과 집합으로 관리하고 중복 행 번호를 출력합니다.

  3. 날짜와 단위 정규화

    입력 JSON의 날짜를 ISO 날짜로 바꾸고 강수량 단위와 오류를 명시적으로 반환합니다.

  4. 파일 읽기와 결측 처리 비교

    with와 csv로 joined.csv를 읽어 삭제·미대체 정책의 행 수와 지역별 결측률을 비교합니다.

Python 자료형과 정제 결과물 통합

m03-join-keys solution 전체와 joined.csv 6행을 그대로 이어받습니다. 합성 교통·날씨 표본을 정제하고 결측 정책에 따른 지표 차이를 감사 기록과 판단 문서로 전달합니다.

요구사항

  • m03 joined.csv를 clean.csv로 변환하는 함수와 CLI를 작성합니다.
  • 오류 행은 rejected.csv로 분리하고 원본·정상·오류·중복 행 수를 기록합니다.
  • 결측을 0으로 바꾸지 않고 삭제와 보존 정책의 지표 차이·편향을 적습니다.
  • clean.csv의 결측은 빈칸으로 보존하며 duplicates.csv에는 정규화 후 완전 일치 중복, rejected.csv에는 값 오류와 KEY_CONFLICT 원문·번호·이유를 기록합니다.
  • clean-audit.json에 보존·완전 사례 정책의 분모·교통 평균·지역별 강수 결측률을 기록하고 policy-note.md에 판단 근거를 작성합니다.

완료 기준

  • python3 -m unittest discover -s tests -v: 기존29개와 새12개 총41개 통과, starter는 새 정책 테스트 일부 실패합니다.
  • 기본 표본은 정상6·오류0·중복0행, 보존 평균78대(유효5개)·완전 사례 평균75대(4행), 지역별 강수 결측률 각각1/3입니다.
  • 원본 행 수=정상+오류+제거된 완전 중복이 성립합니다. 날짜·숫자·결측·윤년·빈 목록·충돌·잘못된 헤더·재실행 fixture와 입력 바이트 보존 검사를 통과합니다.
python3 -m unittest discover -s tests -v
미션 시작 코드
모범 답안모범 답안 내려받기

검토 기준

  • 판단 근거와 제외 조건을 데이터와 연결해 설명합니다.
  • 앞 단계 산출물을 재사용하고 원본을 보존합니다.