首頁 > 後端開發 > Python教學 > 如何基於單列執行 Pandas DataFrame 的三向連接?

如何基於單列執行 Pandas DataFrame 的三向連接?

Linda Hamilton
發布: 2024-12-01 05:32:14
原創
804 人瀏覽過

How to Perform a Three-Way Join of Pandas DataFrames Based on a Single Column?

基於列對Pandas 資料框執行三向連接

使用不同的資料集時,將它們合併在一起以獲得全面的視圖可以至關重要。在 Python 的 pandas 函式庫中, join() 函數提供了一種基於公共索引組合多個資料幀的強大方法。

問題:

您擁有三個 CSV 文件,每個包含人名作為第一列和各種屬性作為其餘列。您的目標是將這些檔案「加入」到一個 CSV 中,每一行代表一個唯一的人及其所有屬性。

最初, join() 函數意味著需要多重索引。然而,當嘗試基於單一索引進行連接時,就會出現混亂。

答案:

要實現所需的三向連接,您可以使用 functools。 reduce 函數,有助於對資料幀進行順序縮減操作。以下是具體操作方法:

import functools as ft
dfs = [df0, df1, df2, ..., dfN]  # List of dataframes
df_final = ft.reduce(lambda left, right: pd.merge(left, right, on='name'), dfs)
登入後複製

這種方法允許您基於公共列(例如您的情況下的「名稱」)合併任意數量的資料幀。 reduce() 函數迭代地將 pandas merge() 函數應用於列表中的資料幀,從而產生一個名為 df_final 的資料幀,其中包含所有合併的屬性資料。

以上是如何基於單列執行 Pandas DataFrame 的三向連接?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板