💡 join()은 인덱스를 기준으로 병합, merge()는 컬럼을 기준으로 데이터프레임을 병합하는 것이 default이고 편한 방법이라고 생각한다.
df_join = df1.join(df2, on = 'key', how = 'left', lsuffix="L",rsuffix='R')
✔️ how
✔️ on
✔️ lsuffix, rsuffix
✔️ merge() 사용 방법과 동일하다 https://velog.io/@dkwjd131/Python-merge
# 데이터프레임 생성
import pandas as pd
df1 = pd.DataFrame({'A':['a1','a2','a3'],'B1':['b1','b2','b3']}, index = ['a','b','c'])
df2 = pd.DataFrame({'B2':['b1','b2','b3'],'C':['c1','c2','c3']}, index=['b','c','d'])
df3 = pd.DataFrame({'A':['a1','a2','a3'],'B1':['b1','b2','b3']}, index = ['i1','i2','i3'])
df4 = pd.DataFrame({'B2':['b1','b2','b3'],'C':['c1','c2','c3'], 'I':['i2','i3','i4']})
df1.join(df2)
merge로 동일한 결과 만들기
pd.merge(df1, df2, left_index=True, right_index=True, how='left')
df1.join(df2, how='right')
merge로 동일한 결과 만들기
pd.merge(df1, df2, left_index=True, right_index=True, how='right')
df4의 I컬럼과 df3의 인덱스를 기준으로 병합
df4.join(df3, on='I')
merge로 동일한 결과 만들기
pd.merge(df4, df3, left_on='I', right_index= True, how='left')