pandas.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)
merge需要依據共同的某一列或者某一行來進行合並
left: 左表(DataFrame)
right:右表(DataFrame)
how:連接方式
left: 僅保留左表的鍵
right: 僅保留右表的鍵
outer:兩表的鍵取並集
inner:兩表的鍵取交集
on:用來對齊的那一列的名字,用到這個參數的時候一定要保證左表和右表用來對齊的那一列都有相同的列名.
left_on :左側DataFarme中用作連接鍵的列.
right_on:右側DataFarme中用作連接鍵的列.
left_index : 將左側的行索引用作其連接鍵 .
right_index :將右側的行索引用作其連接鍵 .
sort :根據連接鍵對合並后的數據進行排序,默認為True.有時在處理大數據集時,禁用該選項可獲得更好的性能.
suffixes :字符串值元組,用於追加到重疊列名的末尾,默認為(‘_x’,‘_y’).例如,左右兩個DataFrame對象都有‘data’,則結果中就會出現‘data_x’,‘data_y’.
copy :設置為False,可以在某些特殊情況下避免將數據復制到結果數據結構中.
import pandas as pd #左右字段相同時采用on df1=pd.DataFrame({'name':['kate','herz','catherine','sally'],'age':[25,28,39,35]}) df2=pd.DataFrame({'name':['kate','herz','sally'],'score':[70,60,90]}) pd.merge(df1,df2,on=["name"],how="outer") #當左右連接字段不相同時,使用left_on,right_on df1=pd.DataFrame({'name':['kate','herz','catherine','sally'],'age':[25,28,39,35]}) df2=pd.DataFrame({'call_name':['kate','herz','sally'],'score':[70,60,90]}) pd.merge(df1,df2,left_on=["name"],right_on=["call_name"],how="outer") #outer 外連接取並集,並用nan填充” #合並后刪除重復的列 df1=pd.DataFrame({'name':['kate','herz','catherine','sally'],'age':[25,28,39,35]}) df2=pd.DataFrame({'call_name':['kate','herz','sally'],'score':[70,60,90]}) pd.merge(df1,df2,left_on='name',right_on='call_name').drop('name',axis=1) #按照索引位置合並 df1=pd.DataFrame({'name':['kate','herz','catherine','sally'],'age':[25,28,39,35]}).set_index("name") df2=pd.DataFrame({'call_name':['kate','herz','sally'],'score':[70,60,90]}).set_index("call_name") pd.merge(df1,df2,how="outer",left_index=True,right_index=True)