TOP
class="layout-aside-left paging-number">
본문 바로가기
[파이썬 Projects]/<파이썬 기초>

[파이썬] pandas 고급 기능 : DataFrame 병합하기

by 기록자_Recordian 2024. 4. 13.
728x90
반응형
해당 내용은 <파이썬으로 데이터 주무르기> 민형기 저, BJPUBLIC 에서 나온 내용을 토대로 작성하였습니다.

 

연습용 데이터 만들기

 

파이썬으로 데이터 만들기

 
연습용 데이터 만들고 조회

파이썬으로 만든 데이터 df1, df2, df3

 


데이터 합치기 'concat' 명령

 
pd.contact([합칠 데이터1, 합칠 데이터2, ...])
concat 명령을 사용하면 아무 옵션 없이 단순하게 열 방향으로 병합하게 됨.

concat 명령으로 데이터 병합하기

 
concat 명령에 keys 옵션으로 구분할 수 있으며

key 명령어 추가하기

이렇게 key 지정된 구분은 다중 index가 되어 level 형성

다중 인덱스
인덱스 별 레벨 얻기

df4 데이터를 생성하고

새 데이터 생성하기
생성된 df4

 
df1과 df4를 옵션 axis=1을 주어 병합하면

df1, df4 병합하기

이런 결과를 얻게되는데, df1의 index가 0, 1, 2, 3
df4의 index가 2, 3, 6, 7 인데 concat 명령은 index를 기준으로 데이터를 합치기 때문에, 값을 가질 수 없는 곳에는 NaN이 저장됨. 
이때 공통된 index로 합치고 공통되지 않은 index의 데이터는 버리도록 하려면
join='inner' 옵션을 사용해야 함

조인하기

concat 명령어 사용 시 열 방향으로 합치면서 ignore_index=True 라고 옵션을 잡으면 두 데이터의 index를 무시하고 합친 후 다시 index 부여 (열 기준으로 합치게 됨)

index 무시하고 병합하기

merge (+ on 옵션)

 
실습을 위해 먼저 두 개의 데이터를 만든다

merge 옵션 사용하여 데이터 합치기

 
두 데이터에 공통으로 있는 컬럼인 key 를 기준으로 merge 명령에서 merge 기준을 설정하는 on 옵션으로 합치면 공통된 key에 대해서만 합쳐지게 됨

key를 기준으로 병합하기

merge + how옵션

 
합치는 두 데이터를 하나씩 기준으로 합칠 수 있음 (how 옵션 이용하여 한쪽 데이터를 설정하면 됨)

how 옵션을 이용하여 merge 명령

merge + outer 옵션

 
outer: merge한 데이터 결과를 모두 가지는 옵션 (합집합처럼 merge가 되며, 공통 요소가 아닌 것은 NaN 처리 됨)

outer 옵션을 사용하기 merge

merge + inner 옵션

 
inner: merge한 데이터 중 공통된 요소만 가짐 (교집합)

inner 옵션을 사용하여 merge

 

728x90
반응형