Skip to main content
merge 실패의 대부분은 문법이 아니라 키 품질 문제입니다. 결합 전에 키를 표준화하면 이후 데이터 손실과 중복 폭증을 크게 줄일 수 있습니다.

키 설계 체크

  • 키 컬럼의 공백/대소문자/타입이 양쪽에서 일치하는지
  • 키의 유일성(Unique) 가정이 실제 데이터와 맞는지
  • 누락 키(NaN, 빈 문자열)가 어느 정도인지

표준화 예시

left["customer_id"] = (
    left["customer_id"].astype(str).str.strip().str.upper()
)
right["customer_id"] = (
    right["customer_id"].astype(str).str.strip().str.upper()
)

유일성 확인

left_dup = left["customer_id"].duplicated().mean()
right_dup = right["customer_id"].duplicated().mean()
print("left duplicated rate:", left_dup)
print("right duplicated rate:", right_dup)
유일성 가정이 깨진 상태에서 1:1 결합을 시도하면 row 수가 예상보다 급증할 수 있습니다.

키 프로파일 테이블

profile = pd.DataFrame({
    "left_unique": [left["customer_id"].nunique()],
    "right_unique": [right["customer_id"].nunique()],
    "left_missing": [left["customer_id"].isna().mean()],
    "right_missing": [right["customer_id"].isna().mean()],
})
print(profile)

이어서 볼 문서