python---pandas.merge使用
merge 函式引數
”’ merge: 合併資料集, 通過left, right確定連線欄位,預設是兩個資料集相同的欄位 引數 說明 left 參與合併的左側DataFrame right 參與合併的右側DataFrame how 連線方式:‘inner’(預設);還有,‘outer’、‘left’、‘right’ on 用於連線的列名,必須同時存在於左右兩個DataFrame物件中,如果位指定,則以left和right列名的交集作為連線鍵 left_on 左側DataFarme中用作連線鍵的列 right_on 右側DataFarme中用作連線鍵的列 left_index 將左側的行索引用作其連線鍵
1.merge預設按相同欄位合併,且取兩個都有的。
import pandas as pddf1=pd.DataFrame({'name':['kate','herz','catherine','sally'],
df2=pd.DataFrame({'name':['kate','herz','sally'], 'score':[70,60,90]})pd.merge(df1,df2)age name score 0 25 kate 70 1 28 herz 60 2 35 sally 90
2. 當左右連線欄位不相同時,使用left_on,right_on
pd.merge(df1,df2,left_on="name",right_on='call_name')age name call_name score
3. 合併後,刪除重複的列
pd.merge(df1,df2,left_on='name',right_on='call_name').drop('name',axis=1)age call_name score 0 25 kate 70 1 28 herz 60 2 35 sally 90
4.引數how的使用
“1)預設:inner 內連線,取交集”
pd.merge(df1,df2,on='name',how='inner')age name score 0 25 kate 70 1 28 herz 60 2 35 sally 90 ”’ “2)outer 外連線,取並集,並用nan填充”
df3=pd.DataFrame({'name':['kate','herz','sally','cristin'], 'score':[70,60,90,30]})pd.merge(df1,df3,on='name',how='outer') age name score 0 25 kate 70 1 28 herz 60 2 39 catherine NaN 3 35 sally 90 4 NaN cristin 30 ”
“3)left 左連線, 左側取全部,右側取部分”
pd.merge(df1,df3,on='name',how='left') age name score 0 25 kate 70 1 28 herz 60 2 39 catherine NaN 3 35 sally 90 ”
“4) right 有連線,左側取部分,右側取全部”
pd.merge(df1,df3,on='name',how='right') age name score 0 25 kate 70 1 28 herz 60 2 35 sally 90 3 NaN cristin 30