Pandas의 merge
메서드는 두 개 이상의 데이터프레임을 병합(또는 조인)하는 데 사용된다. 이를 통해 데이터프레임 간에 공통 열을 기준으로 데이터를 결합하고, 데이터를 조합하여 분석하거나 시각화에 활용할 수 있다. 이 글에서는 Pandas의 merge
메서드를 사용하는 방법에 대해 알아본다.
merge
사용법
result = pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)
left
,right
: 병합할 데이터프레how
: 병합 유형을 지정- ‘inner’ (기본값): 교집합을 반환
- ‘outer’: 합집합을 반환
- ‘left’: 왼쪽 데이터프레임을 기준으로 병합
- ‘right’: 오른쪽 데이터프레임을 기준으로 병합
result_inner = pd.merge(left_df, right_df, how='inner')
result_outer = pd.merge(left_df, right_df, how='outer')
result_left = pd.merge(left_df, right_df, how='left')
result_right = pd.merge(left_df, right_df, how='right')
on
: 병합 기준이 되는 열 지정
result = pd.merge(left_df, right_df, on='key')
left_on, right_on
: 병합 기준이 될 열 이름이 서로 다를때 각각 지정
result = pd.merge(left_df, right_df, left_on='key_left', right_on='key_right')
left_index, right_index
: 어느쪽 데이터프레임을 병합 기준으로 할지 지정
result = pd.merge(left_df, right_df, left_index=True, right_index=True)
merge
예제
다음은 두 개의 데이터프레임을 병합하는 예제로, 두 개의 데이터프레임 employees
와 departments
를 생성한다.
import pandas as pd
data1 = {
'EmployeeID': [101, 102, 103, 104, 105],
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'DepartmentID': [1, 2, 1, 3, 2]
}
data2 = {
'DepartmentID': [1, 2, 3, 4],
'DepartmentName': ['HR', 'IT', 'Finance', 'Sales']
}
employees = pd.DataFrame(data1)
departments = pd.DataFrame(data2)
내부(inner) 조인
이제 두 데이터프레임을 ‘DepartmentID’ 열을 기준으로 내부 조인한다. 내부 조인은 두 데이터프레임에서 일치하는 행만 병합한다.
result = pd.merge(employees, departments, on='DepartmentID')
외부(outer) 조인
외부 조인은 일치하지 않는 행도 병합한다. 예를 들어, 다음과 같이 외부 조인을 수행할 수 있다.
result = pd.merge(employees, departments, on='DepartmentID', how='outer')
위의 결과에서 ‘4 Sales’ 부서는 어느 직원과도 일치하지 않으므로 NaN 값으로 채워진다.