본문 바로가기

Study doc./Python

[Python] concat vs merge

 

■ concat 을 이용한 데이터 합치기

 

- 오른쪽으로 붙이기

행의 크기가 안맞으면 NaN값이 자동으로 삽입됨

pd.concat([df1,df2],axis=1)

 

 

- 아래로 붙이기

열 이름이 같지 않으면 NaN값으로 채워짐

pd.concat([df1,df2],axis=0)

 

 

■ merge 를 이용한 데이터 합치기

* 한 번에 두개씩만 가능

 

1. 기본

공통된 열의 공통 값만 합쳐짐

한쪽에만 있는 값은 합쳐지지 않음

pd.merge(df1,df2)

 

 

2. how 파라미터

- 한쪽이라도 있으면 NaN으로 채워지고 합쳐짐

pd.merge(df1,df2, how='outer')

 

- 왼쪽을 고정시키고 없는 값은 NaN으로 채워지고 합쳐짐 (오른쪽 기준은 'right')

pd.merge(df1,df2, how='left')

 

 

3. on 파라미터

특정 열을 기준으로 합치고 싶다면 on 사용

pd.merge(df1, df2, on='date', how='left')

 


 

결론

기준이 되는 열 없이 오른쪽으로 연결하거나 아래로 붙이고 싶다 = concat 사용

기준이 되는 열이 있거나, 두 데이터프레임의 공통적 요소를 고려한다 = merge 사용

 

+

 

concat을 사용할 때에는 각 데이터프레임의 길이를 파악해라