基於列對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中文網其他相關文章!