🐍 Python/🐍 데이터 분석

파이썬 기초 : 데이터 결합(조인)하는 방법

itstory(Booho) 2025. 1. 23. 12:14
728x90
데이터 분석을 하다 보면 서로 다른 데이터셋을 합쳐야 하는 경우가 많습니다. 이때 SQL의 JOIN과 유사한 개념을 파이썬에서도 사용할 수 있습니다. 이번 글에서는 파이썬에서 데이터 결합(조인)하는 방법을 초보자도 쉽게 이해할 수 있도록 설명하고, SQL 조인과의 차이점도 비교해보겠습니다.

1. 파이썬에서 데이터 조인이란?

 

파이썬에서 데이터 조인은 두 개 이상의 데이터프레임을 특정 기준(키, key)에 따라 합치는 과정을 의미합니다. 주로 pandas 라이브러리를 사용하여 데이터프레임을 병합(merge)하거나 결합(concatenate)할 수 있습니다.

SQL에서의 JOIN과 매우 유사하지만, 문법과 방식에서 차이가 있습니다.


2. SQL JOIN과 파이썬 pandas JOIN의 비교

비교 항목 SQL JOIN pandas JOIN
사용 목적 두 개 이상의 테이블을 특정 키(column) 기준으로 결합 두 개 이상의 데이터프레임을 특정 키(column) 기준으로 결합
주요 함수 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN merge(), join(), concat()
키 지정 방식 ON column_name on='column_name' 또는 index 기반
기본 방식 관계형 데이터베이스에서 실행 메모리 상에서 pandas DataFrame을 다룸

3. pandas에서 조인(join)하는 방법

pandas에서는 merge(), join(), concat() 등의 함수를 사용하여 데이터를 조인할 수 있습니다.

 

3.1 merge() 함수 사용하기

merge() 함수는 SQL의 JOIN과 유사한 역할을 하며, 공통된 컬럼(키)을 기준으로 데이터프레임을 합칩니다.

import pandas as pd

# 임시 데이터 생성
df1 = pd.DataFrame({
    '고객ID': [1, 2, 3],
    '이름': ['김철수', '이영희', '박민수']
})

df2 = pd.DataFrame({
    '고객ID': [1, 2, 4],
    '구매상품': ['노트북', '스마트폰', '태블릿']
})

# 기본 inner join
merged_df = pd.merge(df1, df2, on='고객ID', how='inner')
print(merged_df)

출력 결과:

   고객ID   이름       구매상품
0    1   김철수    노트북
1    2   이영희    스마트폰

how='inner'를 사용하면 SQL의 INNER JOIN과 같은 결과를 얻을 수 있습니다.

 

3.2 다양한 조인 방식

merge() 함수에서 how 매개변수를 변경하여 다양한 조인 방식을 사용할 수 있습니다.

how 값 설명 SQL과 비교
inner 공통된 키 값이 있는 데이터만 결합 (기본값) INNER JOIN
left 왼쪽 데이터프레임을 기준으로 조인 LEFT JOIN
right 오른쪽 데이터프레임을 기준으로 조인 RIGHT JOIN
outer 모든 데이터를 포함하는 전체 조인 FULL OUTER JOIN
# LEFT JOIN
left_join_df = pd.merge(df1, df2, on='고객ID', how='left')
print(left_join_df)


3.3 join() 함수 사용하기

join() 함수는 인덱스를 기준으로 데이터프레임을 결합할 때 사용됩니다.

df1.set_index('고객ID', inplace=True)
df2.set_index('고객ID', inplace=True)
joined_df = df1.join(df2, how='inner')
print(joined_df)


3.4 concat() 함수 사용하기

concat()은 단순히 데이터프레임을 위/아래 혹은 좌/우로 연결할 때 사용됩니다.

concat_df = pd.concat([df1, df2], axis=0)  # 세로 방향 결합
print(concat_df)

axis=0일 경우 세로로

axis=1일 경우 가로로


이번 글에서는 파이썬에서 pandas를 이용한 데이터 조인(결합) 방법을 소개했습니다. SQL과 pandas의 조인 방식이 유사하지만, 메모리 상에서 동작하는 방식이 다르다는 점을 이해하는 것이 중요합니다.

  • merge(): 가장 많이 사용되는 조인 함수 (SQL의 JOIN과 유사)
  • join(): 인덱스를 기준으로 데이터 결합
  • concat(): 데이터 연결 (세로/가로 방향)
728x90
반응형