데이터 분석을 위한 Pandas: 6. 데이터 병합 및 연결

Pandas에서 데이터 병합 및 연결은 여러 데이터셋을 결합하여 더 풍부한 분석을 가능하게 하는 중요한 기능입니다. 주요 방법으로는 `merge()`, `concat()`, `join()` 등이 있습니다.


 DataFrame 병합 (merge)


`merge()` 함수는 SQL의 JOIN과 유사하게 작동하며, 두 DataFrame의 공통 열을 기준으로 데이터를 결합합니다.


# python

import pandas as pd


# 예시 데이터프레임 생성

df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})

df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [20, 40, 50, 60]})


# 내부 조인 (Inner join)

merged_inner = pd.merge(df1, df2, on='key')


# 외부 조인 (Outer join)

merged_outer = pd.merge(df1, df2, on='key', how='outer')


# 왼쪽 조인 (Left join)

merged_left = pd.merge(df1, df2, on='key', how='left')


# 오른쪽 조인 (Right join)

merged_right = pd.merge(df1, df2, on='key', how='right')

#


 DataFrame 연결 (concat)


`concat()` 함수는 DataFrame들을 축을 따라 연결합니다.


# python

# 수직 연결 (행 방향)

df_vertical = pd.concat([df1, df2])


# 수평 연결 (열 방향)

df_horizontal = pd.concat([df1, df2], axis=1)


# 인덱스 재설정

df_reset = pd.concat([df1, df2], ignore_index=True)

#

 

DataFrame 결합 (join)


`join()` 메서드는 인덱스를 기준으로 DataFrame을 결합합니다.


# python

df1 = df1.set_index('key')

df2 = df2.set_index('key')


# 인덱스 기준 조인

joined = df1.join(df2, how='inner', lsuffix='_left', rsuffix='_right')

#


 고급 병합 기능


여러 열을 기준으로 병합


#python

df1 = pd.DataFrame({'key1': ['A', 'B', 'C'], 'key2': [1, 2, 3], 'value': [100, 200, 300]})

df2 = pd.DataFrame({'key1': ['A', 'B', 'D'], 'key2': [1, 2, 4], 'value': [400, 500, 600]})


merged = pd.merge(df1, df2, on=['key1', 'key2'], how='outer')

#


인덱스와 열을 혼합하여 병합


# python

df1 = df1.set_index('key1')

df2 = df2.set_index('key1')


merged = pd.merge(df1, df2, left_index=True, right_on='key2')

#


중복 열 처리


# python

merged = pd.merge(df1, df2, on='key', suffixes=('_left', '_right'))

#


이러한 데이터 병합 및 연결 기능을 활용하면 다양한 소스의 데이터를 효과적으로 결합하여 더 포괄적인 분석을 수행할 수 있습니다. 데이터의 구조와 목적에 따라 적절한 방법을 선택하여 사용하는 것이 중요합니다.




#파이썬 #Python #데이터분석 #dataanalysis #데이터병합 #데이터연결 #pandas #merge #join #concat


0 댓글