Pandas merge 사용법

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 예제

다음은 두 개의 데이터프레임을 병합하는 예제로, 두 개의 데이터프레임 employeesdepartments를 생성한다.

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 값으로 채워진다.

참고

답글 남기기