可以說merge包含了join操作,支持兩個df間行方向或列方向的拼接操作,默認列拼接,取交集,而join只是簡化了merge的行拼接的操作
示例
定義一個left的DataFrame
left=pd.DataFrame([
[1,2],[3,4],[5,6]
],
index=['a','c','e'],
columns=['chenqionghe','muscle']
)
定義一個right的DataFrame
right=pd.DataFrame([
[7,8],[9,10],[11,12],[13,14],
],
index=['b','c','d','e'],
columns=['light','weight']
)
然后,我們使用merge通過索引合並這兩個Dataframe,如下
left.merge(right,left_index=True,right_index=True,how='outer')
然后,通過join方法實現相同的操作
left.join(right,how='outer')
可以看出join其實是省略了參數的merge,並且沒有基於列的連表功能
merge的參數
- left:參與合並的左側DataFrame
- right:參與合並的右側DataFrame
- how:inner、outer、left、right其中之一
- left_index:將左側的行索引用作其連接鍵的列
- right_index:類似於left_index
- sort:根據連接鍵對合並后的數據進行排序,默認為True。有時在處理大數據集時,禁用該選項可獲得更好的性能
- suffixes:字符串值元組,用於追加到重疊列名,默認為('_x','_y')
- copy:設置為False,可以在某些我死情況下避免將數據復制到結果數據結構中,默認總是復制