Pandas 的 merge 方法講解及 how= inner/ outer/ left/ right 的連接方式演示


 
        

 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 里對應的值也會保留

 

 

 

文字有些啰嗦,看代碼示例 [略~]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM