-
파이썬 기초 : 데이터 결합(조인)하는 방법🐍 Python 2025. 1. 23. 12:14728x90
데이터 분석을 하다 보면 서로 다른 데이터셋을 합쳐야 하는 경우가 많습니다. 이때 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'🐍 Python' 카테고리의 다른 글
로지스틱 회귀 (Logistic Regression): 머신러닝 이진 분류 알고리즘의 이해와 실습 (0) 2025.01.27 파이썬 플롯(Python Plot) 완벽 가이드 (0) 2025.01.24 파이썬 기초 : 판다스 실습 | 데이터 분석 (0) 2025.01.22 파이썬 기초 : Pandas(판다스) DataFrame과 Series, 빌트인 함수 (0) 2025.01.21 파이썬 기초 : NumPy 연산을 효율적으로 처리하기 위한 라이브러리 (0) 2025.01.21