본문 바로가기
카테고리 없음

[파이썬] 데이터프레임 합치기 (merge, join, concat)

by thomasito 2021. 8. 5.
반응형

 판다스의 데이터프레임을 다루다 보면 데이터프레임들끼리 합쳐서 하나의 데이터프레임을 만들 때가 많다. 이 때 데이터프레임의 컬럼, 로우가 다른 경우에는 어떻게 합쳐야 할까? 판다스는 이렇게 데이터프레임 합치기와 관련하여 3가지 함수를 제공하는 데 그것이 merge, join, concat 이다.

 

1. merge 메서드 (함수)

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

- on = '컬럼명' : 조인하려는 컬럼 이름

- how = 'outer' : 외부조인은 합집합인 결과를 반환

- how = 'innter' : 양쪽 테이블 모두에 존재하는 키 조합을 사용

2. join 메서드 (함수)

df1.join(df2, on='key')

- on = '컬럼명' : 조인하려는 컬럼 이름

- df1.joing(df2, df3, ...) 형태의 조인도 가능함

3. concat 메서드 (함수)

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

pd.concat([s1, s2, s3], axis=1)

- concat 함수를 사용하는 이유는 index 가 다른 데이터를 '아래로' 이어붙이기 위해서이다. (axis=0)

- axis=1 로 옵션을 부여하는 경우 '옆으로' 이어붙이기도 가능하다.

- how= = 'inner' : 기본값은 how='outer' 이며 

- pd.concat({'level1':df1, 'level2':df2}, axis=1) 와 같이 딕셔너리의 형태로도 합치는 것이 가능하다.

 어떤 것을 써도 자신이 필요한 목적을 달성하면 된다. 나 같은 경우 merge 메서드를 우선해서 사용해보는 편이다. 실제로 데이터프레임을 결합할 때는 컬럼이 맞지 않는 경우도 많아 'inner' 옵션과 'outer' 옵션을 번갈아주면서 관찰한다. 누구나 한 번 쯤 만날 메서드이니 꼭 알고 있자.

반응형

댓글