자신에게 친절할 것 :)

Data Science/Pandas

[EDA] 데이터 합치기 .merge; inner join, left outer join, right outer join, full outer join

Tashapark 2024. 6. 9. 21:22
728x90

# 코드잇 데이터 사이언스 강의 듣는 중


<데이터 합치기>

1. inner join

2. left outer join

3. right outer join

4. full outer join  

 

 

 

1. inner join

 

 

- 겹치는 부분만 합치겠다는 의미.

- 아래 예시를 보면 겹치는 3 상품만 합쳐져서 결과 값이 나옴

 

--> .merge(A, B, on='')

 

 

 

 

 

 

 

 

 

 

- 이 경우에 inner join 값은 product이기 때문에 on에 넣어줌 

pd.merge(price_df, quantity_df, on='Product')

 

2. left outer join

 

- 왼쪽 값만 합치겠다는 것. 오른 쪽 데이터에 없더라도

- 예시를 보면 왼쪽의 상품은 전부 포함되지만,

오른쪽에 겹치지 않는 제품들은 NaN으로 표시됨. 

 

--> .merge(A, B, on='', how='left')

- 먼저 넣어준 값이 left가 됨. 

 

 

 

 

 

 

 

 

pd.merge(price_df, quantity_df, on='Product', how='left')

 

++ 병합시, 기존 데이터(A)의 순서를 그대로 유지하고 싶다면, left outer join을 해주면 됨. 

- 겹친다고 그냥 inner join을 하면 순서가 섞임. 

++ sort=False 는 반드시 필요해 보이지는 않지만, 지피티가 알려줬음. ㅎ

pd.merge(museum, number, on='지역번호', how='left', sort=False)

 

 

 

3. right outer join

 

- 오른쪽 값만 합치겠다는 것. 왼쪽 데이터에 없더라도

- 예시를 보면 오른쪽의 상품은 전부 포함되지만,

왼쪽에 겹치지 않는 제품들은 NaN으로 표시됨. 

 

--> .merge(A, B, on='', how='right')

- 나중에 넣어준 값이 right가 됨. 

 

 

 

 

 

 

 

 

pd.merge(price_df, quantity_df, on='Product', how='right')

 

 

4. full outer join  

 

- 모든 데이터 프레임이 들어감. 

- 예시를 보면 겹치지 않는 가격이나 품질이 NaN으로 표시됨. 

 

--> .merge(A, B, on='', how='outer')

 

 

 

 

 

 

 

 

 

 

 

 

pd.merge(price_df, quantity_df, on='Product', how='outer')

 

+ 판다스 버전 (2.2.1) 차이인지 내 경우에는 Nan 끼리 나타나는 게 아니라 

product의 알파벳 순서대로 정렬되어서 출력되었음. 

 

728x90
반응형