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 댓글