데이터 분석이나 머신 러닝 프로젝트를 수행할 때, 여러 개의 데이터셋을 합쳐야 할 때가 있습니다. 이때 데이터를 합치는 방법 중 하나는 Merge입니다. Python에서는 pandas 라이브러리를 사용하여 데이터를 합칠 수 있습니다.
pandas의 merge 함수
pandas의 merge 함수는 두 개의 데이터프레임을 특정한 기준으로 합치는 기능을 제공합니다. merge 함수는 SQL의 JOIN
과 유사한 방식으로 작동합니다.
merged_df = pd.merge(left_df, right_df, on='key')
위 코드에서 left_df
와 right_df
는 합치고자 하는 데이터프레임이고, on
파라미터는 합칠 기준이 되는 열(또는 여러 열)을 지정합니다. 이렇게 하면 key
열을 기준으로 두 데이터프레임을 합칩니다.
Merge 방식
merge 함수는 기본적으로 inner join을 수행합니다. 이는 두 데이터프레임에서 공통되는 키 값만 남기고 나머지 행을 제거합니다. merge 방식을 지정하지 않으면 inner join이 기본적으로 적용됩니다.
pandas의 merge 함수는 다음과 같은 merge 방식을 지원합니다.
- inner: 공통되는 키 값만 남깁니다.
- outer: 두 데이터프레임에서 모든 행을 합칩니다. 공통되는 키 값이 없는 경우에도 행이 유지됩니다. 없는 값은 NaN으로 처리됩니다.
- left: 왼쪽 데이터프레임을 기준으로 합칩니다. 오른쪽 데이터프레임에 없는 행은 NaN으로 처리됩니다.
- right: 오른쪽 데이터프레임을 기준으로 합칩니다. 왼쪽 데이터프레임에 없는 행은 NaN으로 처리됩니다.
예시
다음은 merge 함수를 사용하여 두 개의 데이터프레임을 합치는 예시입니다.
import pandas as pd
# 첫 번째 데이터프레임
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
'value1': [1, 2, 3, 4]})
# 두 번째 데이터프레임
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
'value2': [5, 6, 7, 8]})
# 두 데이터프레임을 key 열을 기준으로 합치기
merged_df = pd.merge(df1, df2, on='key')
print(merged_df)
결과는 다음과 같습니다.
key value1 value2
0 B 2 5
1 D 4 6
이 예시에서는 key
열을 기준으로 두 데이터프레임을 합칩니다. 결과로는 두 데이터프레임에서 공통된 B
와 D
키 값에 대한 행만 남게 됩니다.
마무리
이와 같이 pandas의 merge 함수를 사용하여 데이터를 합칠 수 있습니다. merge 함수의 다양한 옵션을 활용하면 데이터를 유연하게 합칠 수 있으며, 복잡한 데이터 분석 작업에 도움이 될 것입니다.
참고 자료: