# left right result
A B C D A B C D
key key Y key Y
K0 A0 B0 K0 Y0 C0 D0 K0 Y0 A0 B0 C0 D0
K1 A1 B1 K1 Y1 C1 D1 K1 Y1 A1 B1 C1 D1
K2 A2 B2 K2 Y2 C2 D2 K2 Y2 A2 B2 C2 D2
Y3 C3 D3 Y3 A2 B2 C3 D3
# left #result1:how=left
A B C D
A B K1 A1 B1 NaN NaN
K1 A1 B1 K2 A2 B2 C2 D2
K2 A2 B2 #result2:how='outer'
A B C D
right K1 A1 B1 NaN NaN
K2 A2 B2 C2 D2
C D K3 NaN NaN C3 D3
K2 C2 D2 #result3: how='inner'
K3 C3 D3 A B D
K2 A2 B2 C2 D2
# DataFrames传递列表或元组,join() 在它们的索引上将它们连接在一起
left = pd.DataFrame({'k': ['K0', 'K1', 'K2'], 'v': [1, 2, 3]})
right = pd.DataFrame({'k': ['K0', 'K0', 'K3'], 'v': [4, 5, 6]})
left = left.set_index('k')
right = right.set_index('k')
right2 = pd.DataFrame({'v': [7, 8, 9]}, index=['K1', 'K1', 'K2'])
result = left.join([right, right2])
# left right right2 v_x v_y v
v v v K0 1 4.0 NaN
k k K1 7 K0 1 5.0 NaN
K0 1 K0 4 K1 8 K1 2 NaN 7.0
K1 2 K0 5 K2 9 K1 2 NaN 8.0
K2 3 K3 6 K2 3 NaN 9.0
============================================================