左と右の2つのデータテーブルがある場合、同じ名前の列が少なくとも1つあります。名前はキーと見なされます。これら2つのテーブルを接続するにはどうすればよいですか?
Pythonは、これを実現するためのマージ操作を提供します。
左側のテーブルのキーはk0、k1、k2、右側のテーブルのキーはk0、k0、k1です。
**1) 左側のテーブルのキーが右側のテーブルを指している場合、この接続方法は次のように呼び出されます。左:関係図は次のように表されます。
left right
k0 k0
k0
k1 k1
k2 NaN
**2) 右のテーブルのキーが左のテーブルを指している場合、この接続方法は次のように呼び出されます。右
right left
k0 k0
k0
k1 k1
**3) **左右のテーブルの共有キーのみを使用して関係を確立する場合、この接続方法は次のように呼び出されます。内部
left right
k0 k0
k0 k0
k1 k1
**4) **左右のテーブルのキーがマージされた後に関係が確立された場合、接続メソッドは次のように呼び出されます。外部
left right
k0 k0
k0
k1 k1
k2 NaN
**上記は、マージで2つのテーブルを接続するときに、キーノードに基づいて関係を確立する4つの方法です。 ****
次の例が検証されます
左右のテーブルデータ:
left
age1 key
010 k0
120 k1
230 k2
right
age2 key
040 k0
150 k0
260 k1
**how = 'left' **
pd.merge(left,right,how='left',on='key')
age1 key age2
010 k0 40.0110 k0 50.0220 k1 60.0330 k2 NaN
**how = 'right' **
pd.merge(left,right,how='right',on='key')
age1 key age2
010 k0 40110 k0 50220 k1 60
how = 'inner'
pd.merge(left,right,how='inner',on='key')
age1 key age2
010 k0 40110 k0 50220 k1 60
how = 'outer'
pd.merge(left,right,how='outer',on='key')
age1 key age2
010 k0 40.0110 k0 50.0220 k1 60.0330 k2 NaN
**- - - - - - - - - - - - - - - - - - - - - ** End ---------------------
Recommended Posts