반응형
DataFrame의 merge 옵션에 대한 결과를 비교해 보자.
import pandas as pd
# 직원 정보
df_employees = pd.DataFrame({
'employee_id': [101, 102, 103, 104, 105, 106, 107, 108, 109, 110],
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Helen', 'Ian', 'Jane'],
'dept_id': [1, 1, 2, 2, 3, 3, 4, None, 5, 5]
})
# 부서 정보
df_departments = pd.DataFrame({
'dept_id': [1, 2, 3, 6],
'dept_name': ['HR', 'Engineering', 'Marketing', 'Legal']
})

inner = 교집합
dept_id를 기준으로 모두 존재하는 데이터만 병합되었다. (dept_id == 1, 2, 3)
pd.merge(df_employees, df_departments, on='dept_id', how='inner')
pd.merge(df_departments, df_employees, on='dept_id', how='inner')

left = 왼쪽 우선
왼쪽 데이터는 변경되지 않고 오른쪽 데이터가 추가된다. 추가될 수 없는 데이터는 결측치(NaN)가 된다.
pd.merge(df_employees, df_departments, on='dept_id', how='left')
pd.merge(df_departments, df_employees, on='dept_id', how='left')

right = 오른쪽 우선
위와 반대
pd.merge(df_employees, df_departments, on='dept_id', how='right')
pd.merge(df_departments, df_employees, on='dept_id', how='right')

outer = 합집합
pd.merge(df_employees, df_departments, on='dept_id', how='outer')
pd.merge(df_departments, df_employees, on='dept_id', how='outer')

반응형
'개발 > Python' 카테고리의 다른 글
| ROC 커브의 AUC 계산 (0) | 2025.08.19 |
|---|---|
| 상관계수 (피어슨, 스피어만, 켄달의 타우) (0) | 2025.08.18 |
| Pandas - groupby size vs count (1) | 2025.08.18 |
| 병합적 군집분석 (노드 별 관측치의 수) (1) | 2025.08.17 |
| 선형회귀모형의 검정통계량 F0 (3) | 2025.08.17 |
댓글