AI VIDEO BRIEFING

판다스 merge 완전정복: inner·left·right·outer 조인 차이 정리

파이썬 판다스에서 두 데이터프레임을 합치는 네 가지 병합 방식을 예제로 설명한다. 부서 ID를 기준으로 inner·left·right·outer 병합이 각각 어떤 행을 남기고, 매칭되지 않는 값은 어떻게 결측치로 채워지는지 비교한다.

판다스 데이터프레임 병합 완전정복: inner·left·right·outer의 차이 영상 대표 이미지

핵심 메시지

  • pd.merge는 how 인자를 생략하면 기본값으로 inner(교집합) 병합을 수행한다.
  • inner 병합은 양쪽 표에 공통으로 있는 키의 행만 남긴다.
  • left는 왼쪽 표의 모든 행을, right는 오른쪽 표의 모든 행을 유지하고 짝이 없으면 결측치로 채운다.
  • outer 병합은 양쪽 표의 모든 행을 남기며, 어느 한쪽에만 있는 값은 결측치가 된다.
  • 어떤 병합을 쓰느냐에 따라 결과 행 수와 누락 데이터의 표현이 달라진다.

쉽게 이해하기

이 영상은 파이썬 판다스에서 두 데이터프레임을 합치는 병합(merge)을 다룬다. 왼쪽 표와 오른쪽 표를 만든 뒤, 두 표에 공통으로 있는 부서 ID(department ID) 열을 기준으로 pd.merge(왼쪽, 오른쪽, on='department ID', how=...) 형태로 병합한다. how 인자에 어떤 값을 넣느냐에 따라 결과가 달라진다.

기본값은 inner 병합이다. how를 지정하지 않으면 inner가 되며, 병합 키가 양쪽 표에 모두 존재하는 행, 즉 교집합만 결과에 남는다. 예를 들어 직원 표의 앨리스(101)와 밥(102)은 부서 표에서 각각 HR과 엔지니어링을 찾아 채워지지만, 부서 표에 103이 없으면 103을 가진 데이비드는 결과에서 빠진다.

left 병합은 왼쪽 표의 모든 행을 유지한 채 오른쪽에서 짝을 찾는다. 오른쪽에 없는 키는 '사용 불가(결측치)'로 채운다. 이때 inner에서 빠졌던 데이비드(103) 같은 행도 그대로 남되 부서명은 결측치가 된다. right 병합은 그 반대로, 오른쪽 표의 모든 행을 기준으로 삼아 왼쪽에서 짝을 찾고 없으면 결측치로 채운다. 즉 left와 right는 어느 표를 기준으로 두느냐만 다른 대칭 관계다.

outer 병합은 양쪽 표의 모든 행을 남긴다. 왼쪽에만 있는 값이든 오른쪽에만 있는 값이든 모두 포함하고, 짝이 없는 자리는 결측치로 채운다. 그래서 오른쪽 부서 표에만 있는 104(마케팅)까지 별도 행으로 추가되면, 원래 다섯 개였던 행이 여섯 개로 늘어날 수 있다. 발표자는 이 네 가지가 실무에서 가장 자주 쓰는 주요 병합 방식이라고 정리한다.

주요 인사이트

  • how 인자를 명시하지 않으면 inner가 되므로, 의도치 않은 데이터 손실을 피하려면 병합 방식을 분명히 지정하는 습관이 필요하다.
  • left와 right 병합은 '기준이 되는 표'를 어디에 두느냐의 차이일 뿐 서로 대칭 관계다.
  • outer 병합은 어느 쪽에도 데이터를 빠뜨리면 안 될 때 유용하지만 그만큼 결측치가 늘어난다.
  • 병합 키가 한쪽에만 있는 값(예: 부서 103, 104)은 어떤 병합을 쓰느냐에 따라 결과 포함 여부가 갈린다.

자주 묻는 질문

how 인자를 지정하지 않으면 어떤 병합이 되나?

기본값인 inner 병합이 된다. 두 표에 공통으로 존재하는 키의 행만 결과에 남고 나머지는 제외된다.

left 병합과 right 병합의 차이는?

left는 왼쪽 표의 모든 행을 유지하며 오른쪽에서 짝을 찾고, right는 반대로 오른쪽 표의 모든 행을 유지한다. 어느 경우든 짝이 없으면 그 자리는 결측치로 채워진다.

outer 병합의 결과 행 수가 늘어날 수 있는 이유는?

양쪽 표의 모든 키를 포함하기 때문이다. 한쪽 표에만 있는 부서(예: 104 마케팅)까지 별도 행으로 추가되므로 원래보다 행이 늘어날 수 있다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식

#판다스#pandas#데이터 분석#파이썬#데이터프레임 병합