데이터 분석을 수행하는 데 있어 데이터프레임 합치기는 매우 중요한 작업입니다. 특히, Pandas 라이브러리는 Python에서 데이터를 효율적으로 처리하고 분석할 수 있는 강력한 도구입니다. 이번 포스트에서는 Pandas를 사용하여 데이터프레임을 합치는 방법을 단계별로 살펴보겠습니다.

데이터셋 준비하기

합치기를 시도할 데이터프레임 두 개를 만들어 보겠습니다. 먼저, Python과 Pandas 라이브러리를 설치한 후 아래의 코드를 실행하여 두 개의 데이터프레임을 생성해 보겠습니다.

import pandas as pd

data1 = {
    'ID': [1, 2, 3],
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35]
}
df1 = pd.DataFrame(data1)

# 두 번째 데이터프레임 생성
data2 = {
    'ID': [1, 2, 4],
    'Salary': [70000, 80000, 90000]
}
df2 = pd.DataFrame(data2)

print("첫 번째 데이터프레임:\n", df1)
print("두 번째 데이터프레임:\n", df2)

위 코드를 실행하면 두 개의 데이터프레임이 생성됩니다. df1은 직원의 ID, 이름, 나이를 포함하고 있으며, df2는 직원의 ID와 급여 정보를 포함합니다.

데이터프레임 합치기

Pandas에서는 merge() 함수를 사용하여 두 개의 데이터프레임을 합칠 수 있습니다. 이 함수는 SQL의 JOIN과 유사한 방식으로 동작합니다. 기본적으로는 inner join 방식으로 데이터를 합칩니다.

1. 기본 merge 사용하기

아래의 코드를 통해 두 데이터프레임을 ID를 기준으로 합쳐 보겠습니다.

merged_df = pd.merge(df1, df2, on='ID')
print("합쳐진 데이터프레임 (inner join):\n", merged_df)

실행 결과는 다음과 같습니다.

   ID     Name  Age  Salary
0  1   Alice   25   70000
1  2     Bob   30   80000

ID가 1과 2인 데이터만 포함된 것을 확인할 수 있습니다.

2. 다른 종류의 합치기

merge() 함수는 다양한 종류의 합치기를 지원합니다. 다음 예시를 통해 서로 다른 합치기 방식을 살펴보겠습니다.
  • Outer Join: 모든 데이터를 포함합니다.
  • outer_merged_df = pd.merge(df1, df2, on='ID', how='outer')
    print("합쳐진 데이터프레임 (outer join):\n", outer_merged_df)
  • Left Join: 왼쪽 데이터프레임(df1)의 모든 데이터와 일치하는 오른쪽 데이터(df2)만 포함합니다.
  • left_merged_df = pd.merge(df1, df2, on='ID', how='left')
    print("합쳐진 데이터프레임 (left join):\n", left_merged_df)
  • Right Join: 오른쪽 데이터프레임(df2)의 모든 데이터와 일치하는 왼쪽 데이터(df1)만 포함합니다.
right_merged_df = pd.merge(df1, df2, on='ID', how='right')
print("합쳐진 데이터프레임 (right join):\n", right_merged_df)

각 합치기 방식에 따라 결과가 어떻게 달라지는지 확인해보세요.

3. 다중 키로 합치기

때로는 여러 열을 기준으로 데이터프레임을 합쳐야 할 경우도 있습니다. 아래의 예제를 통해 두 개의 열을 기준으로 합치는 방법을 살펴보겠습니다.

먼저, df1과 df2에 추가적인 열을 추가하겠습니다.

data1 = {
    'ID': [1, 2, 3],
    'Department': ['HR', 'IT', 'Finance'],
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35]
}
df1 = pd.DataFrame(data1)

data2 = {
    'ID': [1, 1, 2],
    'Department': ['HR', 'Finance', 'IT'],
    'Salary': [70000, 80000, 80000]
}
df2 = pd.DataFrame(data2)

# 다중 키로 merge
multi_merged_df = pd.merge(df1, df2, on=['ID', 'Department'])
print("다중 키로 합쳐진 데이터프레임:\n", multi_merged_df)

결과는 각 ID와 부서에 대해 일치하는 데이터만 포함됩니다.

마무리

이번 포스트에서는 Pandas를 사용하여 데이터프레임을 합치는 방법에 대해 살펴보았습니다. 다양한 방식의 합치기를 통해 복잡한 데이터셋을 효율적으로 관리할 수 있습니다. 데이터 분석의 첫걸음은 데이터를 잘 다루는 것이니, 이 튜토리얼을 통해 데이터프레임 합치기에 대한 이해를 높이시길 바랍니다. Pandas는 강력한 도구이니, 다양한 기능들을 실험해 보면서 데이터 분석 능력을 한층 더 발전시켜 보세요!