# 코드잇 데이터 사이언스 강의 듣는 중
<데이터 합치기>
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의 알파벳 순서대로 정렬되어서 출력되었음.
'Data Science > Pandas' 카테고리의 다른 글
[Pandas] query()로 불린 인덱싱 (2) | 2024.06.14 |
---|---|
[Pandas] 엑셀xlsx 파일 불러오기 (0) | 2024.06.13 |
[EDA] 카테고리 분류, .groupby (0) | 2024.06.09 |
[EDA] 카테고리 분류, .map() (2) | 2024.06.07 |
[EDA] 값 추가, 문자열 필터링 .str.contains(''), 값 분리, .str.split() (0) | 2024.06.07 |