Data Science/Python

[Python] pandas로 데이터 합치기(concat, merge)

oduu 2021. 1. 7. 00:24

 

 

 

 

효과적으로 데이터를 분석하기 위해서는 데이터셋을 하나로 합치는 것이 필요한데요,

pandas를 통해 데이터를 합치는 두가지 방법입니다!

 

 

먼저 pandas 라이브러리를 불러와 주고

import pandas as pd

 

 

1. concat

 

행을 기준으로 concat ( default값으로 axis = 0 적용 )

pd.concat([df1,df2])

열을 기준으로 concat

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

 

행의 인덱스 번호도 그대로 가져왔을 경우, ignore_index = True 를 이용해서 인덱스를 재배열할 수 있습니다.

pd.concat([df1,df2], ignore_index = True)

 

 

concat에서 join = 'outer' 를 default 값으로 가지기 때문에,  'inner'로 하고 싶다면 join = 'inner'를 입력하면 된답니다.

 - outer는 합집합, inner는 교집합이라고 생각하시면 됩니다!

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

 

 

concat을 할 때, 두 데이터프레임의 인덱스를 새로 정렬하고 싶다면 ignore_index = True 를 입력하면 됩니다.

- default : ignore_index = False

pd.concat([df1,df2], ignore_index = True)

 

 

 

2. merge

 

merge는 두 데이터프레임을 각 데이터에 존재하는 key 값을 기준으로 병합할 때 사용합니다.

 

공통 열이름(id)을 기준으로 inner 옵션 병합하기

pd.merge(df1, df2)

 

outer 옵션을 줘 on = ' '값을 기준으로 병합하기

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

 

왼쪽 데이터를 기준으로 병합하기

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

 

오른쪽 데이터를 기준으로 병합하기

pd.merge(df1, df2, how = 'right', left_on = '', right_on = '')