python dataframe join

2337 ワード

SQLのinner join,left join,right joinをDataframeで実現するには、まず2つのテーブル,df 1,df 2を用意します.
import pandas as pd
df1 = pd.DataFrame([{'col1':'a', 'col2':1}, {'col1':'b', 'col2':2}])
df2 = pd.DataFrame([{'col1':'a', 'col3':11}, {'col1':'c', 'col3':33}])
print df1
print df2

df1
   co12 col1
0     1    a
1     2    b

df2
   co13 col1
0    11    a
1    33    c

inner join
print pd.merge(left=df1, right=df2, how='inner', left_on='col1', right_on='col1')
----------
   co12 col1  co13
0     1    a    11

left join
print pd.merge(left=df1, right=df2, how='left', left_on='col1', right_on='col1')
----------
   co12 col1  co13
0     1    a    11
1     2    b   NaN

right join
print pd.merge(left=df1, right=df2, how='left', left_on='col1', right_on='col1')
----------
   co12 col1  co13
0     1    a    11
1   NaN    c    33