본문 바로가기
데이터/Pandas

[Pandas] concat, merge 구분하기

by 찌노오 2023. 6. 22.

 

 

데이터를 합치는 concat()과 merge() 메서드

pd.concat과 pd.merge는 둘 다 데이터프레임을 결합하는 데 사용되는 메서드다. 그러나 각각 다른 방식으로 작동하며, 다른 상황에서 사용될 수 있다. 그래서 두 개념은 한 번에 정리해두는 게 좋겠다.

 

1. pd.concat()

pd.concat 함수는 주어진 데이터프레임을 연결(concatenate)하여 새로운 데이터프레임을 생성한다.
데이터프레임을 행 또는 열 방향으로 연결이 가능하다.


연결하는 데이터프레임의 구조와 인덱스는 유지되며, 연결한 결과는 단순히 데이터프레임을 이어붙인 형태로 반환된다.
일반적으로 pd.concat은 데이터프레임을 단순히 결합하고자 할 때 사용되는데 예를 들어, 여러 개의 데이터프레임을 행 방향으로 연결하여 전체 데이터셋을 구성하는 경우에 사용할 수 있다.

 

import pandas as pd

# 연결할 데이터프레임 생성
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})

# 데이터프레임을 행 방향으로 연결
result = pd.concat([df1, df2])

print(result)

 

   A   B
0  1   4
1  2   5
2  3   6
0  7  10
1  8  11
2  9  12

위의 예시에서는 pd.concat 함수를 사용하여 df1과 df2 데이터프레임을 행 방향으로 연결했다. result 데이터프레임은 단순히 df1과 df2를 이어붙인 형태로 출력된다.

 

2. pd.merge()

pd.merge 함수는 두 개 이상의 데이터프레임을 공통된 열 또는 인덱스를 기준으로 병합(merge)한다.
병합 기준으로 사용되는 열 또는 인덱스를 기준으로 데이터프레임을 조인(join)

 

데이터프레임 간에 공통된 열이나 인덱스가 있어야 한다.
일반적으로 pd.merge는 데이터프레임 간의 관계를 나타내는 열 또는 인덱스를 기준으로 데이터를 조합하고자 할 때 사용한다. 예를 들어, 공통된 열을 기준으로 주문 정보와 고객 정보를 조인하여 주문 내역에 고객 정보를 추가할 수 있다.

 

 

import pandas as pd

# 병합할 데이터프레임 생성
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['B', 'C', 'D'], 'value': [4, 5, 6]})

# 'key' 열을 기준으로 데이터프레임 병합
result = pd.merge(df1, df2, on='key')

print(result)

 

  key  value_x  value_y
0   B        2        4
1   C        3        5

위의 예시에서는 pd.merge 함수를 사용하여 df1과 df2 데이터프레임을 'key' 열을 기준으로 병합했다. result 데이터프레임은 'key' 열을 기준으로 두 데이터프레임을 조인하여 공통된 값들만 포함하게 된다.

정리하면, pd.concat은 데이터프레임을 단순히 연결하는 데 사용하고, pd.merge는 데이터프레임을 병합하고자 할 때 사용할 수 있다.

 

 

 

 

 

 

 

 

 

반응형

댓글