Merge와 Join
실무에서는 하나의 데이터프레임에 모든 정보가 담겨 있는 경우가 드뭅니다. 고객 정보, 주문 내역, 상품 정보가 각각 다른 테이블에 존재하며, 분석을 위해 이들을 결합해야 합니다. Pandas의merge()는 SQL의 JOIN과 동일한 기능을 제공합니다.
학습 목표
- merge의 네 가지 조인 방식(inner, left, right, outer)을 이해한다
- 단일/다중 키로 데이터프레임을 결합할 수 있다
- 키 이름이 다른 경우의 결합을 수행할 수 있다
- 조인 결과를 검증하고 문제를 진단할 수 있다
왜 중요한가
ML 프로젝트에서 피처 엔지니어링은 여러 데이터 소스를 결합하는 것으로 시작합니다. 고객의 구매 이력, 인구통계 정보, 웹 행동 로그를 하나의 피처 행렬로 만들려면 merge가 필수입니다. 잘못된 조인은 데이터 누락이나 중복을 일으키므로, 조인 방식의 정확한 이해가 중요합니다.조인 방식
| 방식 | 설명 | SQL 대응 | 결과 행 수 |
|---|---|---|---|
inner | 양쪽 키 교집합 | INNER JOIN | 작거나 같음 |
left | 왼쪽 전체 + 매칭 | LEFT OUTER JOIN | 왼쪽 이상 |
right | 오른쪽 전체 + 매칭 | RIGHT OUTER JOIN | 오른쪽 이상 |
outer | 양쪽 합집합 | FULL OUTER JOIN | 가장 많음 |
다양한 결합 패턴
결과 검증
AI/ML에서의 활용
- 피처 결합: 여러 데이터 소스의 피처를 하나의 학습 데이터셋으로 통합합니다
- 레이블 매핑: 예측 대상(타겟)이 별도 테이블에 있을 때 merge로 결합합니다
- 룩업 테이블: 코드를 설명으로 변환하는 매핑 테이블을 조인합니다
- 데이터 검증: indicator로 누락 데이터를 식별합니다
merge와 join의 차이는 무엇인가요?
merge와 join의 차이는 무엇인가요?
merge()는 열 기반 결합이 기본이고, join()은 인덱스 기반 결합이 기본입니다. join()은 내부적으로 merge()를 호출하므로 기능은 동일하며, merge()가 더 유연합니다.suffixes 옵션은 언제 사용하나요?
suffixes 옵션은 언제 사용하나요?
양쪽에 같은 이름의 열이 있으면 자동으로
_x, _y 접미사가 붙습니다. suffixes=('_고객', '_주문')처럼 지정하면 더 의미 있는 이름을 붙일 수 있습니다.체크리스트
- inner, left, right, outer 조인의 차이를 설명할 수 있다
- on, left_on, right_on 파라미터를 상황에 맞게 사용할 수 있다
- validate로 조인 관계를 검증할 수 있다
- indicator로 매칭 상태를 확인할 수 있다
- 조인 후 행 수 변화를 예측하고 검증할 수 있다

