concat()은 데이터프레임을 axis을 기준으로 붙이는 함수입니다. axis는 기본값으로 0으로 설정되어 있습니다. 데이터가 없는 값은 NaN값으로 설정됩니다.
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})
# 행 방향으로 결합
result = pd.concat([df1, df2], axis=0)
print(result)
위 결과는 다음과 같습니다.
A B
0 1 3
1 2 4
0 5 7
1 6 8
아래는 axis가 1인 경우 입니다.
df3 = pd.DataFrame({'A': [1, 2]}, index=[0, 1])
df4 = pd.DataFrame({'B': [3, 4]}, index=[1, 2])
result = pd.concat([df3, df4], axis=1)
print(result)
위 코드의 결과는 다음과 같습니다.
A B
0 1.0 NaN
1 2.0 3.0
2 NaN 4.0
merge()는 특정한 고유 키를 기준으로 데이터를 병합하는 함수입니다.
how를 통해 병합 방식(INNER, LEFT, RIGHT, OUTER)을 설정할 수 있습니다.
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value1': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['A', 'B', 'D'], 'value2': [4, 5, 6]})
result = pd.merge(df1, df2, on='key', how='inner')
print(result)
위 코드의 결과는 다음과 같습니다.
key value1 value2
0 A 1 4
1 B 2 5
옵션이 inner이기 때문에 공통된 키인 A와 B만 결합된 것을 확인할 수 있습니다.