[pandas] merge 1
DataFrame의 결합(merge)(1)
두 DataFrame을 Database 결합(join)하기 위해서는 두개의 DataFrame과 기준(
on), 방법(how) 옵션이 들어간다. 여기서는 full outer join, full left join, full right join에 대해서 알아본다. 모든것은 아래의 예제에 대해서 설명된다.

import numpy as np
import pandas as pd
data1 = {'학번' : [1, 2, 3, 4],
'이름' : ['이지안','박동훈','이순신','강감찬'],
'학년' : [2, 4, 1, 3]}
data2 = {'학번' : [1, 2, 4 ,5],
'학과' : ['CS','MATH','MATH', 'CS'],
'학점' : [3.4, 2.9, 4.5, 1.2]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
display(df1)
display(df2)


1. full outer join
Outer join은 두
DataFrame의 합집합으로 생각할 수 있다. option에는how='outer'가 입력된다.
result = pd.merge(df1, df2, on ='학번', how='outer')
display(result)
## 학번을 기준으로 합집합 연산을 합니다.

2. Full left join
Left join은 두
DataFrame을df1,df2라 하면df1에df2-df1을 합집합 해준다고 생각 할 수 있다.
result1 = pd.merge(df1, df2, on='학번', how='left')
display(result1)
## 아래 display를 보면 df1에 (df2-df1) : 학과, 학점이 추가 되었다.

3. Full right join
Right join은 left join 과 마찬가지 역할로
df1,df2순서만 변했다고 생각 할 수 있다. 대신df2의column이 뒤에 붙는다.
result2 = pd.merge(df1, df2, on='학번', how='right')
display(result2)

반대로 df1 과 df2 순서를 바꿔보면
result3 = pd.merge(df2, df1, on='학번', how='right')
display(result3)

Full left join에서의 column 순서를 제외한 같은 결과물을 얻을 수 있다.
4. Inner join
merge의 기본 default 값이고 두DataFrame의 학번의 교집합을 연산을 하고 나머지column을 다 가져온다.
result = pd.merge(df1,df2, on='학번',how='inner')
display(result)
