여러 DataFrame을 합치는 작업은 데이터 분석에서 매우 흔합니다.
Pandas는 SQL의 JOIN 같은 기능을 「merge」와 「join」으로 제공합니다.
merge 기본.
pd.merge(df1, df2, on="id") — id 열 기준으로 결합(INNER JOIN).
pd.merge(df1, df2, on="id", how="left") — LEFT JOIN(df1의 모든 행 + 매칭되는 df2).
how 옵션 — inner(기본), left, right, outer(전체).
다른 키 이름.
pd.merge(df1, df2, left_on="user_id", right_on="id") — df1의 「user_id」와 df2의 「id」가 일치할 때 결합.
두 DataFrame의 키 이름이 다를 때 사용.
concat — 단순히 위·아래 또는 옆으로 붙이기.
pd.concat([df1, df2]) — 위아래로 결합(같은 열 가정).
pd.concat([df1, df2], axis=1) — 옆으로 결합(같은 행 가정).
키 매칭 없이 단순 결합이라 merge보다 가볍습니다.
join — DataFrame의 메서드 형태.
df1.join(df2, on="key") — merge와 비슷.
인덱스 기반 결합에 강합니다.
「세 가지 결합 함수가 있는 게 헷갈리지만」, 실무에서는 merge가 가장 자주 쓰입니다.
정리: merge — 일반 결합(SQL JOIN), concat — 단순 이어붙이기, join — 인덱스 기반.
한 줄 요약
DataFrame 결합은 merge(SQL JOIN, on/how 옵션), concat(단순 이어붙이기), join(인덱스 기반)의 세 함수로 합니다.
how 옵션 — inner·left·right·outer로 결합 방식을 선택합니다.
더 알아볼 것
- JOIN의 4가지 종류 시각화
- suffixes 옵션 — 같은 열 이름 처리
- validate 옵션 — 결합 검증