DataFrame과 같은 테이블을 결합할 때, pd.concat 함수를 사용해서 축 방향으로 결합할 수도 있지만,
이 방법외에도 결합을 위해 자주 사용하는 방법은 pd.merge 함수를 활용하는 것입니다.
간단한 예제를 통해 네 가지의 Join 방법을 살펴봅니다.
- Inner Join
- Outer Join
- Left Join
- Right Join
먼저 테이블은 다음과 같이 정의합니다.
import pandas as pd
A = pd.DataFrame({'ID' : [1, 2, 3],
'이름' : ['김우주', '오수아', '박새로이']})
B = pd.DataFrame({'ID' : [2, 3, 4], '주소' : ['서울', '장가', '이태원']})
Inner Join
Inner Join은 두 테이블의 키가 일치하는 데이터만 추출해서 반환합니다. 우리는 'ID'를 키로 활용할 것입니다.
두 테이블에서 일치하는 아이디는 [2, 3]이기 때문에, 2행을 가지는 테이블을 만들 수 있습니다.
pd.merge(A, B, on = 'ID', how = 'inner')
Outer Join
Outer Join은 키를 기준으로 두 테이블에 존재하는 모든 데이터를 활용해서 결합하는 방법입니다. 따라서 A 테이블에서는 ID=4가 없으므로 NaN 값으로 채워질 것이고, B 테이블에서는 ID=1이 없으므로 NaN 값으로 채워질 것입니다.
쉽게 생각하면 조건은 잘 모르겠고, Null 값으로 채워서라도 다 사용하겠다~ 라는 의미입니다.
pd.merge(A, B, on = 'ID', how = 'outer')
Left Join
Left Join은 left에 위치하는 테이블의 키만 사용하여 데이터를 반환합니다. A 테이블이 보유하고 있는 키를 right 테이블은 B가 보유하고 있지 않으면 무시됩니다. 밑의 결과에서 ID=4가 반환되지 않는 것을 볼 수 있습니다.
pd.merge(left = A, right = B, on = 'ID', how = 'left')
Right Join
Right Join은 Left Join의 반대입니다. B 테이블의 키만 반환합니다.
pd.merge(left = A, right = B, on = 'ID', how = 'right')
'# 기타 공부한 것들 > 파이썬_etc.' 카테고리의 다른 글
파이썬(Python), 알아두면 유용한 방법들 (0) | 2021.06.01 |
---|---|
파이썬 의존 패키지 복사하기 (0) | 2021.05.19 |
for-loop로 간단한 maxpooling, convolution 만들어보기 (0) | 2020.03.24 |
파일 이름 변경하기 (0) | 2020.03.20 |
ElementTree를 활용하여 xml 파싱하기 (2) | 2020.03.20 |