python中的merge函式與sql中的 join 用法非常類似,以下是merge( )函式中的引數:
merge(left, right, how='inner', on=none, left_on=none, right_on=none, left_index=false, right_index=false, sort=false, suffixes=('_x', '_y'), copy=true, indicator=false, validate=none)
import pandas as pd
df1=pd.dataframe()
df2=pd.dataframe()
display(df1,df2,pd.merge(df1,df2))
df1
key value1
0 a 0
1 b 1
2 a 2
3 b 3
4 b 4
df2key value2
0 a 0
1 c 1
2 c 2
3 c 3
4 c 4
pd.merge(df1,df2) ##以df1、df2中相同的列名key進行連線,預設how='inner', pd.merge(df1,df2,on='key',how='inner')
key value1 value2
0 a 0 0
1 a 2 0
pd.merge(df1,df2,how='outer') ## 全連線,取並集
pd.merge(df1,df2,how='left') ### 左連線,左邊取全部,右邊取部分,沒有值則用nan填充
key value1 value2
0 a 0 0.0
1 b 1 nan
2 a 2 0.0
3 b 3 nan
4 b 4 nan
pd.merge(df1,df2,how='right') ### 右連線,右邊取全部,左邊取部分,沒有值則用nan填充
key value1 value2
0 a 0.0 0
1 a 2.0 0
2 c nan 1
3 c nan 2
4 c nan 3
5 c nan 4
如果兩個dataframe的左右連線鍵的列名不一樣,可以用left_on,right_on來進行指定
df3=pd.dataframe()
df4=pd.dataframe()
df3
lkey data1
0 a 0
1 b 1
2 a 2
3 b 3
4 b 4
df4
rkey data2
0 a 0
1 c 1
2 c 2
3 c 3
4 c 4
pd.merge(df3,df4,left_on='lkey',right_on='rkey') ### 內連線,預設how='inner'
lkey data1 rkey data2
0 a 0 a 0
1 a 2 a 0
pd.merge(df3,df4,left_on='lkey',right_on='lkey',how='outer') ### 全連線
lkey data1 rkey data2
0 a 0.0 a 0.0
1 a 2.0 a 0.0
2 b 1.0 nan nan
3 b 3.0 nan nan
4 b 4.0 nan nan
5 nan nan c 1.0
6 nan nan c 2.0
7 nan nan c 3.0
8 nan nan c 4.0
pd.merge(df3,df4,left_on='lkey',right_on='rkey',how='left') ### 左連線
lkey data1 rkey data2
0 a 0 a 0.0
1 b 1 nan nan
2 a 2 a 0.0
3 b 3 nan nan
4 b 4 nan nan
pd.merge(df3,df4,left_on='lkey',right_on='rkey',how='right') ### 右連線
lkey data1 rkey data2
0 a 0.0 a 0
1 a 2.0 a 0
2 nan nan c 1
3 nan nan c 2
4 nan nan c 3
5 nan nan c 4
df5=pd.dataframe(np.arange(12).reshape(3,4),index=list('abc'),columns=['v1','v2','v3','v4'])
df6=pd.dataframe(np.arange(12,24,1).reshape(3,4),index=list('abd'),columns=['v5','v6','v7','v8'])
df5
v1 v2 v3 v4
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
df6
v5 v6 v7 v8
a 12 13 14 15
b 16 17 18 19
d 20 21 22 23
pd.merge(df5,df6,left_index=true,right_index=true)
v1 v2 v3 v4 v5 v6 v7 v8
a 0 1 2 3 12 13 14 15
b 4 5 6 7 16 17 18 19
資料分析入門 pandas之合併函式merge
merge有點類似sql中的join,可以將不同資料集按照某些字段進行合併,得到新的資料集 1.引數一覽表 2.一對一連線 預設情況下,會按照相同欄位的進行連線 例如有相同欄位emp的兩個df,merge的時候就會根據emp進行連線,且根據引數知道,預設是內連線 使用預設的不是很明了,通常情況下,我...
python 資料合併函式merge
merge left,right,how inner on none,left on none,right on none,left index false,right index false,sort false,suffixes x y copy true,indicator false,val...
python 資料合併之join
個人覺得資料框合併最簡單的莫過於join,乙個小函式卻有大作用。具體介紹 dataframe.join other,on none,how left lsuffix rsuffix sort false other 乙個dataframe series 要有命名 或者dataframe組成的list...