根據日期合併多個資料幀
您有多個具有公共日期列但行數和列數不同的資料幀。目標是合併這些資料幀以獲得每個日期對所有資料幀通用的行。
低效遞歸方法
您嘗試使用遞歸函數來合併資料幀是有缺陷的。該函數進入無限循環,因為它不斷使用相同的輸入來呼叫自身。這種方法效率低且容易出錯。
使用reduce的最佳化解決方案
合併多個資料幀的更有效方法是使用functools模組中的reduce函數。此函數透過對相鄰的資料幀對重複套用指定的合併操作,將資料幀列表縮減為單一資料幀。
以下程式碼片段示範了這種方法:
在此程式碼中,reduce 函數透過迭代合併相鄰的資料幀對將 dfs 列表縮減為單一資料幀。 on='date' 參數指定應依日期列執行合併。 how='outer' 參數可確保兩個資料幀中的所有行都包含在合併結果中,即使它們不共用相同的日期。
reduce 函數的優點
使用reduce函數提供了幾個優點:
範例
使用提供的資料幀df1、df2 和df3,您將獲得以下合併資料框:
此資料框僅包含日期與所有三個輸入資料框相同的行。
以上是如何根據公共日期列有效合併多個資料框?的詳細內容。更多資訊請關注PHP中文網其他相關文章!