[Python] 데이터프레임 합치기 :: pd.merge()
pd.merge는 공통의 열을 기준으로 두 데이터프레임을 합쳐준다. sql에서 join과 같은 역할이다.
import pandas as pd
# 기준열 이름이 같을 때
pd.merge(left, right, on = '기준열', how = '조인방식')
# 기준열 이름이 다를 때
pd.merge(left, right, left_on = '왼쪽 열', right_on = '오른쪽 열', how = '조인방식')
left : 왼쪽 데이터프레임
right : 오른쪽 데이터프레임
on : (두 데이터프레임의 기준열 이름이 같을 때) 기준열
how : 조인 방식 {'left', 'right', 'inner', 'outer'} 기본값은 'inner'
left_on : 기준열 이름이 다를 때, 왼쪽 기준열
right_on : 기준열 이름이 다를 때, 오른쪽 기준열
예시 데이터 생성
fruit = pd.DataFrame({'Num':[123, 456, 789, 1011, 1112], 'Fruit':['Apple', 'Banana', 'Cherry', 'Lemon', 'Peach']})
grade = pd.DataFrame({'Num':[123, 789, 1314], 'Grade':['A', 'B', 'C']})
fruit과 grade는 Num을 공통의 열로 가진 데이터프레임이다.
Num을 기준으로 두 데이터프레임을 합쳐보려 한다.
1. how = JOIN 방식
Left Join
: 왼쪽 데이터프레임을 기준으로 조인한다. 오른쪽 데이터프레임에 없는 값은 NaN으로 나타난다.
pd.merge(left, right, on = 'col', how = 'left')
Right Join
: 오른쪽 데이터프레임을 기준으로 조인한다. 왼쪽 데이터프레임에 없는 값은 NaN으로 나타난다.
pd.merge(left, right, on = 'col', how = 'right')
Inner Join
: 교집합을 의미한다. 양쪽에 공통으로 있는 값만 나타난다.
pd.merge(left, right, on = 'col', how = 'inner')
Outer Join
: 모든 값이 나타나도록 한다. 왼쪽 데이터프레임과 오른쪽 데이터프레임에 없는 값들은 NaN으로 나타난다.
pd.merge(left, right, on = 'col', how = 'outer')
2. on = '기준열'
공통이 되는 기준 열이 여러 개일 때
pd.merge(left, right, on = ['col1', 'col2'])
두 데이터프레임의 열 이름이 다를 때
위 예시처럼 양쪽 데이터프레임에서 merge의 기준이 되는 열의 이름이 같다면 on = '기준열'로 지정해주면 된다. 하지만 양쪽 데이터프레임에서 기준이 되는 열의 이름이 다르다면 각각 left_on = '왼쪽 열', right_on = '오른쪽 열'로 지정하면 된다.
pd.merge(left, right, left_on = '왼쪽 열', right_on = '오른쪽 열')
'Python > Pandas' 카테고리의 다른 글
[Python] 엑셀 불러오기 :: pd.read_excel (3) | 2020.11.19 |
---|---|
[Python] 데이터프레임 중복 제거 :: drop_duplicates (1) | 2020.11.16 |
[Python] 데이터프레임 txt로 저장하기 (0) | 2020.09.04 |
[Python] df.copy() :: 복사본 만들기 / 얕은복사 & 깊은 복사 (0) | 2020.06.18 |
[Pandas] pd.read_html() :: html에서 표 가져오기/데이터프레임으로 만들기 (0) | 2020.03.31 |
Comments