[파이썬] pandas에서 데이터 병합 (merge, join, concat)
데이터 분석 작업 중, 여러 개의 데이터셋을 하나로 병합해야 할 때가 있습니다. pandas는 이러한 작업을 쉽게 할 수 있도록 여러 가지 병합 방법을 제공합니다. 이번 포스트에서는 merge, join, concat 세 가지 방법에 대해 알아보겠습니다.
1. merge
merge 함수는 두 개의 데이터프레임을 특정 열을 기준으로 병합하는 방법입니다. 대체로 SQL의 JOIN과 비슷한 개념으로 사용됩니다.
다음은 merge 함수의 사용법 예시입니다.
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': [5, 6, 7, 8]
})
# merge를 사용하여 두 데이터프레임 병합
merged_df = pd.merge(df1, df2, on='key')
print(merged_df)
이 코드는 key
열을 기준으로 df1
과 df2
를 병합합니다. 결과는 다음과 같이 나타납니다.
key value_x value_y
0 B 2 5
1 D 4 6
2. join
join 메소드는 두 개 이상의 데이터프레임을 인덱스 또는 열을 기준으로 병합하는 방법입니다. merge와 달리 기준 열이 아니라 인덱스나 열을 사용해 병합합니다.
다음은 join 메소드의 사용법 예시입니다.
import pandas as pd
# 첫 번째 데이터프레임 생성
df1 = pd.DataFrame({
'value1': [1, 2, 3, 4],
}, index=['A', 'B', 'C', 'D'])
# 두 번째 데이터프레임 생성
df2 = pd.DataFrame({
'value2': [5, 6, 7, 8],
}, index=['B', 'D', 'E', 'F'])
# join을 사용하여 두 데이터프레임 병합
joined_df = df1.join(df2)
print(joined_df)
이 코드는 인덱스를 기준으로 df1
과 df2
를 병합합니다. 결과는 다음과 같이 나타납니다.
value1 value2
A 1 NaN
B 2 5.0
C 3 NaN
D 4 6.0
3. concat
concat 함수는 여러 개의 데이터프레임을 축을 따라 병합하는 방법입니다. 두 개 이상의 데이터프레임을 병합할 때 유용합니다.
다음은 concat 함수의 사용법 예시입니다.
import pandas as pd
# 첫 번째 데이터프레임 생성
df1 = pd.DataFrame({
'value': [1, 2, 3, 4]
})
# 두 번째 데이터프레임 생성
df2 = pd.DataFrame({
'value': [5, 6, 7, 8]
})
# concat을 사용하여 두 데이터프레임 병합
concatenated_df = pd.concat([df1, df2])
print(concatenated_df)
이 코드는 열을 따라 df1
과 df2
를 병합합니다. 결과는 다음과 같이 나타납니다.
value
0 1
1 2
2 3
3 4
0 5
1 6
2 7
3 8
이렇듯 pandas에는 데이터를 병합하기 위한 다양한 방법이 있습니다. merge, join, concat을 유연하게 사용하여 데이터 분석 작업을 효율적으로 진행할 수 있습니다.