merge 的使用
pd.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)
常用參數:
left:左 DataFrame
right:右 DataFrame
how:連接方式:‘inner’(默認);還有,‘outer’、‘left’、‘right’
on:用於連接的列名,必須同時存在於左右兩個DataFrame對象中
連接方式演示
0 數據准備
import pandas as pd # 創建兩個用於演示的DataFrame X = pd.DataFrame({'name':['A','B','C','D'],'age':[1,2,3,4]}) Y = pd.DataFrame({'name':['A','B','E'],'age':[1,5,6]})
其中:
A 同學在兩個數據集中都存在,並且對應的 age 相同
B 同學在兩個數據集中都存在,但對應的 age 不同
C D 兩位同學只出現在 X 數據集中
E 同學只出現在 Y 數據集中
1 inner 內連接
merge 默認的連接方式
以 name 列為基准,保留兩個數據集中同時存在的樣本,這些樣本的其他特征都會保留
2 outer 外連接
以 name 列為基准,保留 X Y 兩個數據集里 name 中出現的所有值,這些樣本的其他特征都會保留,不存在的特征會自動補充 nan
3 left 左連接
保留左 DataFrame 中,name 列出現的所有值(單獨出現在右 DataFrame 的 name 里的值會被去除),這些值在右 DataFrame 里對應的值也會保留
4 right 右連接
保留右 DataFrame 中,name 列出現的所有值(單獨出現在左 DataFrame 的 name 里的值會被去除),這些值在左 DataFrame 里對應的值也會保留
文字有些啰嗦,看代碼示例 [略~]