首頁  >  文章  >  後端開發  >  如何根據公共日期列有效合併多個資料框?

如何根據公共日期列有效合併多個資料框?

Susan Sarandon
Susan Sarandon原創
2024-11-12 12:36:02964瀏覽

How do I efficiently merge multiple dataframes based on a common date column?

根據日期合併多個資料幀

您有多個具有公共日期列但行數和列數不同的資料幀。目標是合併這些資料幀以獲得每個日期對所有資料幀通用的行。

低效遞歸方法

您嘗試使用遞歸函數來合併資料幀是有缺陷的。該函數進入無限循環,因為它不斷使用相同的輸入來呼叫自身。這種方法效率低且容易出錯。

使用reduce的最佳化解決方案

合併多個資料幀的更有效方法是使用functools模組中的reduce函數。此函數透過對相鄰的資料幀對重複套用指定的合併操作,將資料幀列表縮減為單一資料幀。

以下程式碼片段示範了這種方法:

在此程式碼中,reduce 函數透過迭代合併相鄰的資料幀對將 dfs 列表縮減為單一資料幀。 on='date' 參數指定應依日期列執行合併。 how='outer' 參數可確保兩個資料幀中的所有行都包含在合併結果中,即使它們不共用相同的日期。

reduce 函數的優點

使用reduce函數提供了幾個優點:

  • 簡單:代碼簡潔且易於理解。
  • 無嵌套:與遞歸方法不同,有合併操作無嵌套,消除無限的風險
  • 擴展性:您可以從dfs 清單中新增或刪除資料幀,以動態變更合併操作。

範例

使用提供的資料幀df1、df2 和df3,您將獲得以下合併資料框:

此資料框僅包含日期與所有三個輸入資料框相同的行。

以上是如何根據公共日期列有效合併多個資料框?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn