import pandas as pd
df_left = pd.DataFrame({'name': ['a0', 'a1', 'a2'],
'b': ['b0', 'b1', 'b2'],
'c': ['c0', 'c1', 'c2']})
df_left
name | b | c | |
---|---|---|---|
0 | a0 | b0 | c0 |
1 | a1 | b1 | c1 |
2 | a2 | b2 | c2 |
df_right = pd.DataFrame({'member': ['a0', 'a1'],
'x': ['x0', 'x1'],
'y': ['y0', 'y1']})
df_right
member | x | y | |
---|---|---|---|
0 | a0 | x0 | y0 |
1 | a1 | x1 | y1 |
# inner 조인 : 두 테이블에 모두 있는 key에 대해서만 조인
pd.merge(df_left, df_right, how='inner', left_on='name', right_on='member')
name | b | c | member | x | y | |
---|---|---|---|---|---|---|
0 | a0 | b0 | c0 | a0 | x0 | y0 |
1 | a1 | b1 | c1 | a1 | x1 | y1 |
# left 조인 : 왼쪽 테이블의 행들은 모두 포함 (오른쪽 테이블에 없는 값은 NaN)
pd.merge(df_left, df_right, how='left', left_on='name', right_on='member')
name | b | c | member | x | y | |
---|---|---|---|---|---|---|
0 | a0 | b0 | c0 | a0 | x0 | y0 |
1 | a1 | b1 | c1 | a1 | x1 | y1 |
2 | a2 | b2 | c2 | NaN | NaN | NaN |