데이터 조작을 위한 도구: merge, join, concat
2023. 5. 19. 11:15ㆍ데이터 사이언스/데이터 사이언스 인트로
데이터 분석과 조작은 현대 비즈니스에서 무엇보다 중요한 요소입니다. 데이터를 효과적으로 합치고 조작하는 것은 정확한 분석과 의사 결정에 필수적입니다. 파이썬에는 그런 작업을 도와주는 유용한 기능이 있는데, Merge와 Join이 그 중 하나입니다. 이 글에서는 merge()와 join()의 개념과 사용법을 알아보고, 각각 장점과 단점에 대해 알아보겠습니다.
- Merge 함수: Merge 함수는 데이터프레임을 다른 데이터프레임과 합칠 때 사용됩니다. 두 데이터프레임을 공통된 열을 기준으로 합치는 방식입니다. Merge 함수는 내부 조인, 외부 조인, 왼쪽 조인, 오른쪽 조인 등 다양한 합치기 방식을 지원합니다. Merge 함수의 장점과 단점을 살펴보겠습니다.
장점:
- 다양한 합치기 방식을 지원하여 유연하게 데이터를 합칠 수 있습니다.
- 시리즈에서도 사용 가능 (단, 이름이 지정되어 있어야 함)
단점:
- 데이터프레임이 크면 처리 시간이 오래 걸릴 수 있습니다.
- 열 이름이 중복되면 충돌이 발생할 수 있습니다.
예시: 두 개의 데이터프레임 df1와 df2를 Merge하여 새로운 데이터프레임 df3를 생성하는 예시를 살펴보겠습니다.
#inner join
#Inner join은 두 데이터프레임에서 공통된 열을 기준으로 일치하는 행만을 가져옵니다.
import pandas as pd
df1 = pd.DataFrame({'Key': ['K0', 'K1', 'K2', 'K3'],
'Value_A': ['A0', 'A1', 'A2', 'A3']})
df2 = pd.DataFrame({'Key': ['K0', 'K1', 'K2', 'K3'],
'Value_B': ['B0', 'B1', 'B2', 'B3']})
df3 = pd.merge(df1, df2, on='Key') #on='inner'로 해도 됨
print(df3)
# Key Value_A Value_B
# 0 K0 A0 B0
# 1 K1 A1 B1
# 2 K2 A2 B2
# 3 K3 A3 B3
#outer join
#Outer join은 양쪽 데이터프레임에서 겹치지 않는 모든 행을 포함하는 합집합을 만듭니다.
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2, 3],
'B': ['A0', 'A1', 'A2']})
df2 = pd.DataFrame({'C': [3, 4, 5],
'D': ['B1', 'B2', 'B3']})
df3 = pd.merge(df1, df2, how='outer')
print(df3)
# A B C D
# 0 1 A0 NaN NaN
# 1 2 A1 NaN NaN
# 2 3 A2 3.0 B1
# 3 NaN NaN 4.0 B2
# 4 NaN NaN 5.0 B3
- Join 함수: Join 함수는 인덱스를 기준으로 데이터프레임이나 시리즈를 합칠 때 사용됩니다. Join 함수의 장점과 단점을 알아보겠습니다.
장점:
- 인덱스를 기준으로 합치기 때문에 간단하게 사용할 수 있습니다.
- 데이터프레임과 시리즈 모두에 적용할 수 있습니다.
단점:
- 내부 조인만 지원하기 때문에 외부 조인이 필요한 경우에는 Merge 함수를 사용해야 합니다.
- 인덱스 중복 처리에 유의해야 하며, 충돌이 발생할 수 있습니다.
예시: 두 개의 시리즈 X와 Y를 Join하여 새로운 시리즈 Z를 생성하는 예시를 살펴보겠습니다.
X = pd.Series(['A0', 'A1', 'A2'], index=['K0', 'K1', 'K2'])
Y = pd.Series(['B0', 'B1', 'B2'], index=['K1', 'K2', 'K3'])
Z = X.join(Y)
print(Z)
# K0 NaN
# K1 A0
# K2 A1
# K3 A2
# dtype: object
즉, Merge 함수는 다양한 합치기 방식을 지원하여 데이터프레임을 유연하게 합칠 수 있으며, Join 함수는 간단하게 인덱스를 기준으로 데이터프레임이나 시리즈를 합칠 수 있습니다. 각각의 장점과 단점을 고려하여 작업에 맞는 함수를 선택해보세요.
자세한 내용과 예시 코드를 확인하고 싶다면 아래 자료들을 참고해보세요.
- Pandas 공식 문서:
- Real Python 블로그:
- Towards Data Science 블로그:
'데이터 사이언스 > 데이터 사이언스 인트로' 카테고리의 다른 글
파이썬의 자료형 Explained! (0) | 2023.05.19 |
---|