天天看點

【pandas】第六章 連接配接【pandas】第六章 連接配接一、關系型連接配接二、方向連接配接三、類連接配接操作

【pandas】第六章 連接配接

Datawhale的pandas學習的開源位址:Joyful Pandas
https://datawhalechina.github.io/joyful-pandas/build/html/%E7%9B%AE%E5%BD%95/ch1.html
           

歡迎大家關注了解Datawhale :)

目錄

  • 【pandas】第六章 連接配接
  • 一、關系型連接配接
    • 1. 連接配接的基本概念
    • 2. 值連接配接
    • 3. 索引連接配接
  • 二、方向連接配接
    • 1. concat
    • 2. 序列與表的合并
  • 三、類連接配接操作
    • 1. 比較
    • 2. 組合

一、關系型連接配接

1. 連接配接的基本概念

将兩張表以某列為鍵,進行合成,pandas中可用函數有merge和join,它們均以how參數表示連接配接要求。

how='left’表示完全儲存左表,比對鍵儲存右表

how='inner’表示隻保留兩表均有的鍵

注:兩邊同時出現的重複鍵以笛卡爾積形式加入

【pandas】第六章 連接配接【pandas】第六章 連接配接一、關系型連接配接二、方向連接配接三、類連接配接操作

2. 值連接配接

這裡主要學習幾個重要參數

  • left_on, right_on : 在兩個表不具備相同的列名下定義左右表連接配接後的列名
    【pandas】第六章 連接配接【pandas】第六章 連接配接一、關系型連接配接二、方向連接配接三、類連接配接操作
  • suffixes : 在兩個表中有重複的列名下定義左右表連接配接後列名

用法:

df1.merge(df2, on=‘Name’, how=‘left’)

【pandas】第六章 連接配接【pandas】第六章 連接配接一、關系型連接配接二、方向連接配接三、類連接配接操作
  • on : 指定多個列完成對重複值的正确連接配接
    【pandas】第六章 連接配接【pandas】第六章 連接配接一、關系型連接配接二、方向連接配接三、類連接配接操作

3. 索引連接配接

用法:

df1.join(df2, how=‘left’)

與merge原理一緻,有on和how參數,可以對重複的列指定左右字尾 lsuffix 和 rsuffix

二、方向連接配接

1. concat

axis:預設0縱向拼接,1橫向拼接

join:預設outer保留所有的列,inner保留均出現的列

keys:合并後的表定義其組成表的行索引

用法:

pd.concat([df1, df2], axis=1, join=‘inner’,keys=[‘one’,‘two’])

2. 序列與表的合并

concat 可以實作多個表之間的方向拼接,而

append 和 assign 可以實作把一個序列追加到表的行末或者列末

在 append 中,如果原表是預設整數序列的索引,那麼可以使用 ignore_index=True 對新序列對應的索引自動标号,否則必須對 Series 指定 name 屬性。

用法:

df1.append(s, ignore_index=True)

assign可以通過直接在原表中添加某一列實作,隻不過注意将修改原表

三、類連接配接操作

1. 比較

compare比較兩個表或者序列的不同處并将其彙總展示

用法:

df1.compare(df2)

2. 組合

combine

用法:

df1.combine(df2, 自定義處理兩表的函數名)