학습 본문으로 건너뛰기
VAIRODE
pandas 데이터 처리50번째 작은 수업
오늘은 질문 하나만 해결해요50 / 72

따라 해보기 · 직접 바꿔보기

join key와 null-key 정책을 정한다

오늘의 질문

join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다. 공백·대소문자·dtype가 다른 key 또는 null key가 의도치 않게 미매칭·매칭되어 행과 값이 빠지거나 합쳐진다.를 방치하면 계산은 끝나도 결과의 의미·재현성·의사결정 안전성을 증명할 수 없습니다.

아직 답을 몰라도 괜찮아요. 아래 작은 예시를 보고 먼저 예상해 보세요.

01 · 같이 연습해요

작은 문제부터 하나씩 직접 풀어봐요

먼저 예상하고, 한 단계씩 확인하고, 막힌 곳을 고쳐 봐요. 도움을 열어도 괜찮아요. 도움을 본 문제는 나중에 모양을 바꿔 다시 풀어보면 됩니다.

연습에서 작성 중인 답0 / 8
  1. 01

    찾아보기 · 기초

    DI50 recognize · join key와 null-key 정책을 정한다: join key와 null key 표식에서 “join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다.”을 만족하는 dataset 상태를 판별한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      DI50에서는 출력 셀만 보지 말고 shape, columns, index, dtypes, null count, unique key와 aggregate를 전후로 적으세요.

    2. 개념

      join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    정답과 비교
  2. 02

    먼저 생각하기 · 기초

    DI50 predict · join key와 null-key 정책을 정한다: “공백·대소문자·dtype가 다른 key 또는 null key가 의도치 않게 미매칭·매칭되어 행과 값이 빠지거나 합쳐진다.” fixture를 실행하기 전에 shape·dtype·index·missing·aggregate 중 이 레슨의 결과 변화를 예측한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      DI50에서는 출력 셀만 보지 말고 shape, columns, index, dtypes, null count, unique key와 aggregate를 전후로 적으세요.

    2. 개념

      join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    움직임과 비교
  3. 03

    순서 따라가기 · 익힌 것을 써보기

    DI50 trace · join key와 null-key 정책을 정한다: raw input에서 left/right key profile·null/duplicate count·key normalization map·join policy까지 join key → null key → key normalization → key compatibility 상태와 lineage edge를 순서대로 추적한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      DI50에서는 출력 셀만 보지 말고 shape, columns, index, dtypes, null count, unique key와 aggregate를 전후로 적으세요.

    2. 개념

      join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    움직임과 비교
  4. 04

    내 말로 설명하기 · 익힌 것을 써보기

    DI50 explain · join key와 null-key 정책을 정한다: join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다.이 결과 해석과 재현성에 필요한 이유를 데이터 의미·연산 의미·증거 경계로 나눠 설명한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      DI50에서는 출력 셀만 보지 말고 shape, columns, index, dtypes, null count, unique key와 aggregate를 전후로 적으세요.

    2. 개념

      join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    설명 기준과 비교
  5. 05

    빈칸 채우기 · 익힌 것을 써보기

    DI50 complete · join key와 null-key 정책을 정한다: 누락된 schema guard·transform·reconciliation 칸을 채워 “join 전에 key compatibility와 null policy를 fail-closed로 검사하는 preflight를 구현한다.”을 fail-closed로 완성한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      DI50에서는 출력 셀만 보지 말고 shape, columns, index, dtypes, null count, unique key와 aggregate를 전후로 적으세요.

    2. 개념

      join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    답과 설명 함께 비교
  6. 06

    틀린 곳 고치기 · 익힌 것을 써보기

    DI50 debug · join key와 null-key 정책을 정한다: 최소 DataFrame/array fixture로 “공백·대소문자·dtype가 다른 key 또는 null key가 의도치 않게 미매칭·매칭되어 행과 값이 빠지거나 합쳐진다.”를 재현하고 최초 위반 지점만 수정한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      DI50에서는 출력 셀만 보지 말고 shape, columns, index, dtypes, null count, unique key와 aggregate를 전후로 적으세요.

    2. 개념

      join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    답과 설명 함께 비교
  7. 07

    직접 만들기 · 새 문제

    DI50 implement · join key와 null-key 정책을 정한다: join 전에 key compatibility와 null policy를 fail-closed로 검사하는 preflight를 구현한다.을 synthetic input·고정 seed·명시 schema로 구현하고 left/right key profile·null/duplicate count·key normalization map·join policy를 생성한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      DI50에서는 출력 셀만 보지 말고 shape, columns, index, dtypes, null count, unique key와 aggregate를 전후로 적으세요.

    2. 개념

      join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    정답과 비교
  8. 08

    새 문제에 써보기 · 새 문제

    DI50 transfer · join key와 null-key 정책을 정한다: 주문-고객·학생-수업·상품-분류 table 연결에 같은 계약을 이식하고 달라진 grain·privacy·cost·decision owner를 방어한다.

    이 문제는 주어진 내용과 정답 기준을 더 만드는 중이에요. 지금 적은 답은 연습 메모로만 저장돼요.

    정답 대신 4단계 힌트 보기
    1. 관찰

      DI50에서는 출력 셀만 보지 말고 shape, columns, index, dtypes, null count, unique key와 aggregate를 전후로 적으세요.

    2. 개념

      join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다.

    3. 다음 도움

      내 생각을 먼저 적고 ‘내 답과 맞춰 볼 기준 보기’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    설명 기준과 비교

8개 답이 남았습니다.

02 · 막힌 곳을 찾아요

틀린 답에서 생각이 갈라진 첫 지점 찾기

헷갈림 01

공백·대소문자·dtype가 다른 key 또는 null key가 의도치 않게 미매칭·매칭되어 행과 값이 빠지거나 합쳐진다.

겉으로 보이는 막힘
join key와 null-key 정책을 정한다의 output은 생성되지만 행·열·dtype·key 또는 해석 가능한 분모가 입력 계약과 어긋난다.
막힌 까닭
join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다.을 transform 전후 assertion으로 고정하지 않았다.
다시 해보는 방법
join 전에 key compatibility와 null policy를 fail-closed로 검사하는 preflight를 구현한다.에 pre/post guard와 reject ledger를 추가하고 최소 fixture를 다시 실행한다.
헷갈림 02

join key와 null-key 정책을 정한다 pipeline 중간 결과를 notebook memory에 남긴 채 셀을 순서 밖으로 재실행한다.

겉으로 보이는 막힘
같은 입력과 코드처럼 보여도 hidden state 때문에 결과·row count·dtype가 달라진다.
막힌 까닭
단계별 입력·출력 owner와 idempotent 경계 및 clean restart 검증이 없다.
다시 해보는 방법
raw snapshot에서 모든 단계를 순서대로 재실행하고 ${seed.evidence}를 새 실행 ID로 대조한다.
헷갈림 03

left/right key profile·null/duplicate count·key normalization map·join policy를 만들며 원본 식별자·민감 열·AI prompt에 private row를 그대로 포함한다.

겉으로 보이는 막힘
학습 artifact가 재식별 가능하거나 공유 불가능해지고 결과 검증과 개인정보 보호가 충돌한다.
막힌 까닭
수집 전 최소화·synthetic fixture·column allowlist·집계 공개 경계를 두지 않았다.
다시 해보는 방법
민감 열을 source 경계에서 제거하거나 합성하고 privacy negative control 뒤 증거를 다시 만든다.

03 · 내게 맞는 도움 고르기

같은 목표를 원하는 도움만큼 연습해요

안내 받으며

안내형

join key → null key → key normalization → key compatibility 순서로 source·grain·schema·transform·assertion·결정 칸을 채운다.

join key와 null-key 정책을 정한다의 입력 grain과 schema, 변환 단계, 오류 분기, 검증 증거를 번호·도형·선 종류로 구분한 도식에서 색상 외에도 raw·clean·reject·report, schema·row·key·null·lineage·verdict label과 선 종류를 함께 표시한다.
혼자 해보기

내 힘으로

DI50 join key와 null-key 정책을 정한다: join key의 grain·dtype·normalization·uniqueness와 null-key match/deny policy를 양쪽 table에 명시하고 index와 domain key를 혼동하지 않는다.의 처음 보는 synthetic fixture를 먼저 판정한 뒤 Python 3.14.6·pandas 3.0.5·NumPy 2.5.1·Matplotlib 3.11.1 local harness에서 replay하고 불일치만 공식 계약으로 교정한다.

공식 문서·문법·library API는 열 수 있지만 해당 변형의 exact row/key/null count·schema diff·join cardinality·reject reason·hidden grader 판정은 먼저 제공하지 않는다.
더 도전하기

심화형

주문-고객·학생-수업·상품-분류 table 연결의 volume·null pattern·category drift·privacy 축 하나를 추가하고 같은 계약을 clean restart로 검증한다.

join key와 null-key 정책을 정한다에서 편의보다 의미 보존·reproducibility·privacy·실패 가시성을 우선하고 제거·대체·격리 비용을 기록한다.