15.1 데이터의 의미와 구조

실습 · 연습문제 1개

데이터 사전으로 열 하나 검사하기 check-column-spec

데이터 사전(data dictionary)은 열마다 단위·허용 범위·결측 규칙을 적은 문서다. 사전이 기계가 읽을 수 있는 형태라면 새 데이터가 들어올 때마다 자동으로 검사할 수 있다.

함수 check_column(values, spec)을 완성한다. values는 한 열의 값(1차원 배열), spec은 그 열의 사전 항목이다.

spec의 키 뜻
"min", "max" 허용 범위. 양 끝을 포함한다
"missing_codes" (선택) 결측을 뜻하는 숫자 코드의 목록. 예: [-999.0]. 없으면 빈 목록으로 본다

다음 세 개수를 담은 딕셔너리를 반환한다.

  • "missing": NaN이거나 missing_codes에 있는 값의 수
  • "out_of_range": 결측이 아니면서 [min, max] 밖에 있는 값의 수
  • "valid": 나머지 값의 수

세 값의 합은 len(values)와 같아야 한다. 결측 코드를 범위 밖 값으로 세지 않는 것이 핵심이다. -999는 "매우 추운 날"이 아니라 "측정하지 못한 날"이다.

힌트: np.isnan과 np.isin으로 결측 마스크를 먼저 만들고, 범위 검사는 결측이 아닌 값에만 적용한다.