[pandas] merge 2
DataFrame의 결합(merge)(2)
두
DataFrame
을 어떠한 column을 기준으로 결합(join)할때 두 가지 상황에서merge
하는 법에 대해 알아본다.
1. 기준이 되는 column 명이 다를때
기준이 되고자 하는
column
명이 다를때 해결하는 방법에 대해서 알아본다.
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)
- 결합을 할 때
on
keyword 대신left_on
과right_on
keyword를 입력해서 각 기준column
을 입력할 수 있다.
result = pd.merge(df1, df2, left_on='학번', right_on='학생학번', how='inner')
display(result)
## df1의 학번과 df2의 학생학번 기준으로 교집합 연산을 한다.
2. DataFrame의 column과 index를 이용한 merge
DataFrame의 column 이나 index를 이용해 merge 가 가능하다.
import numpy as np
import pandas as pd
data1 = {'학번' : [1, 2, 3, 4],
'이름' : ['이지안','박동훈','이순신','강감찬'],
'학년' : [2, 4, 1, 3]}
data2 = {'학과' : ['CS','MATH','MATH', 'CS'],
'학점' : [3.4, 2.9, 4.5, 1.2]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2, index=[1,2,4,5]) # 학번을 index로 사용
result = pd.merge(df1, df2, left_on='학번', right_inex=True, how='inner')
display(result)