Pandas 連接數據幀 [2022]

已發表: 2021-01-06

想像一下,您有兩組數據,您必須將它們組合起來才能執行分析。 使用 SQL 時,可以使用 SQL 連接來組合來自數據庫中兩個或多個表的記錄。 同樣,Python 中也有連接數據幀的選項。 那麼什麼是數據框呢? Python 中的數據框有多個行和列。 它類似於 SQL 中的表。 你有用於 Python 數據分析的 pandas 軟件庫。 Pandas 連接數據幀幫助我們根據一定的邏輯組合數據幀。

組合數據幀的不同方式:

  • 內連接:內連接非常類似於兩個集合的交集。 在內部連接的情況下,將返回一個數據框,其中僅包含那些具有共同屬性的行。 因此,兩個組合數據框中的每一行都應具有匹配的列值。
  • 左連接:左連接返回左數據框中的所有行,僅返回右數據框中的匹配行。
  • 右連接:右連接返回右數據框中的所有行,僅返回左數據框中的匹配行。
  • 全聯接或外聯接:全聯接保留左側數據框和右側數據框的所有行。

資源

現在讓我們看看 Pandas 中用於組合數據幀或序列的函數。

目錄

Pandas 中的函數

1.加入功能

正如我們所讀到的,Python 有很多類似 SQL 的特性可用於組合數據。 數據幀有一個充當地址的索引。 通常,行索引稱為索引,而列由列名尋址。 Join 操作允許您合併來自兩個數據框的所有列。 您可以通過更新“lsuffix”和“rsuffix”參數來重命名左右列。 您可以通過更新“how”參數來選擇合併方式。

句法:
DataFrame.join( self , other , on=None , how='right' , lsuffix=” , rsuffix=” , sort=False )
另請閱讀:Python Pandas 初學者教程

2.合併功能

合併功能與連接操作非常相似。 但是,您可以在組合來自兩個數據幀的所有列時獲得靈活的控制。 您可以使用 on = Column Name 來合併公共列上的數據框。 您可以更新 left_on = Column Name 或 right_on = Column Name 以使用左側或右側數據框中的列作為鍵來對齊表。 選擇 left_index = True 或 right_index = True,允許您使用左側數據框或右側數據框的行標籤作為連接鍵。

句法:

DataFrame.merge( self , right , how='left' , 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 )

閱讀:熊貓面試問題

3. 連接函數

使用 Concat 函數,您可以根據您的選擇組合列或行上的數據。 您可以在兩個軸中的任何一個上設置連接邏輯(左/右/內/全連接)。 您還可以選擇使用 verify_integrity 檢查新的連接軸是否存在重複值。 如果沒有在連接軸上指定索引值,則結果軸將被標記為 0,1,… n-1。 keys 參數允許您使用傳遞的鍵來形成分層索引。

句法

pandas.concat( objs , axis =0 , join='left' , join_axes=None ,

ignore_index=False keys=None levels=None names=None

verify_integrity=False , sort=None , copy=True )

閱讀:Python 中的數據結構算法

包起來

正如我們在 pandas.DataFrame 中看到的,merge 和 join 函數用於組合在列上工作的數據框。 還有一個選項可以根據提供的後綴重命名列。 在逐行對齊的情況下,合併功能提供了更大的靈活性。 相反,pandas 的 Concat 函數可以對行或列進行操作。

使用 Concat 函數時不會重命名列。 當我們必須組合兩個數據幀時,Pandas 連接數據幀是一項基本功能。 使用特定條件合併兩個數據框可幫助您準備分析和其他任務所需的數據。 因此對於軟件庫 pandas 連接數據幀是一個不可或缺的功能。

您是否有興趣了解更多關於 pandas 中可用的各種功能並深入研究數據分析? 您可以查看upGrad 提供的數據科學 PG 文憑這些課程由行業專家主持,將幫助您了解更多關於探索性數據分析、各種數據可視化技術和機器學習算法的知識。 與 upGrad 一起開始您在數據分析和機器學習領域的職業生涯。

Pandas 有哪些不同類型的關節?

Pandas 庫提供了四種不同的連接來組合數據框。 這些連接如下 - 內連接是組合數據幀的最基本連接。 內連接返回一個數據框,其中僅包含那些具有共同屬性的行。 因此,兩個組合的數據幀都應該具有共同的值。 全連接或外連接返回左右數據框的所有行。 換句話說,它提供了兩個數據幀的聯合。 左連接返回左數據框的所有行以及右數據框的匹配行。 右連接與左連接正好相反。 它返回右側數據幀的所有行以及左側數據幀的匹配行。

連接行或列的不同方式是什麼?

可以通過以下方式連接兩個數據幀的行或列: 1. 使用 .concat() 連接 DataFrame - 這是我們使用“.concat()”函數連接兩個行或列的最簡單方法。 2. 通過在軸上設置邏輯連接 DataFrame - 在此方法中,我們在軸上定義不同的邏輯。 坐標軸的設置方式如下:取並集(join=outer)、取交集(join=inner)、使用具體索引。 3. 使用 .append() 連接 DataFrame - “.append()” 函數在“.concat()” 函數之前使用,它沿著軸 = 0 連接。 4. 通過忽略索引連接 DataFrame - 在此方法中,我們忽略無意義的索引並附加數據框。 我們使用 ignore_index 作為參數來忽略重疊索引。

你對合併函數了解多少?

合併功能對兩個數據框進行操作,以合併行或列。 它是一種高內存連接操作,類似於關係數據庫。 您可以使用 on = Column Name 來合併公共列上的數據框。
您可以更新 left_on = Column Name 或 right_on = Column Name 以使用左側或右側數據框中的列作為鍵來對齊表。 選擇 left_index = True 或 right_index = True,允許您使用左側數據框或右側數據框的行標籤作為連接鍵。