ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 기초 : 데이터 결합(조인)하는 방법
    🐍 Python 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
Designed by Tistory.