Skip to main content
결합 결과를 바로 사용하면 누락/중복 오류가 숨은 채로 다음 단계로 전파됩니다. validate, indicator를 함께 써서 결합 무결성을 먼저 확인합니다.

validate로 관계 강제

merged = left.merge(
    right,
    on="customer_id",
    how="left",
    validate="1:1"  # 1:m, m:1, m:m 가능
)
가정과 다르면 예외가 발생하므로, 파이프라인 초기에 오류를 빠르게 잡을 수 있습니다.

indicator로 누락 추적

audit = left.merge(
    right,
    on="customer_id",
    how="outer",
    indicator=True
)

print(audit["_merge"].value_counts())
  • left_only: 오른쪽 매칭 실패
  • right_only: 왼쪽 기준 외 데이터
  • both: 정상 매칭

anti-join 패턴

unmatched_left = audit[audit["_merge"] == "left_only"]
unmatched_right = audit[audit["_merge"] == "right_only"]
운영에서는 이 두 집합을 매일 리포트하면 데이터 계약(Data Contract) 이상을 빠르게 감지할 수 있습니다.

최소 검증 규칙

  • 결합 전/후 row 수 변화율
  • 핵심 키 매칭률(both 비율)
  • 중복 키 발생률
  • 주요 컬럼 결측률 변화

이어서 볼 문서