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 將左側的行索引用做其鏈接鍵
right_index 將右側的行索引用做其鏈接鍵
sort 根據鏈接鍵對合並後的數據進行排序,默認爲True。有時在處理大數據集時,禁用該選項可得到更好的性能
suffixes 字符串值元組,用於追加到重疊列名的末尾,默認爲(‘_x’,‘_y’).例如,左右兩個DataFrame對象都有‘data’,則結果中就會出現‘data_x’,‘data_y’
copy 設置爲False,能夠在某些特殊狀況下避免將數據複製到結果數據結構中。默認老是賦值
」’函數

1.merge默認按相同字段合併,且取兩個都有的。性能

import pandas as pd
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)

age name score
0 25 kate 70
1 28 herz 60
2 35 sally 90spa

2. 當左右鏈接字段不相同時,使用left_on,right_on對象

pd.merge(df1,df2,left_on="name",right_on='call_name')

age name call_name score
0 25 kate kate 70
1 28 herz herz 60
2 35 sally sally 90

排序

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的使用pandas

「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

相關文章
相關標籤/搜索