合併多個資料幀可能會很複雜且令人沮喪,尤其是當資料幀數量增加時。雖然可以使用巢狀合併函數,但這種方法變得難以管理且容易出錯。
要以更優雅、更有效率的方式合併多個資料幀,請考慮以下解決方案:
import pandas as pd from functools import reduce # Initialize a list of dataframes dfs = [df1, df2, df3] # Merge the dataframes using the reduce function df_merged = reduce(lambda left, right: pd.merge(left, right, on=['DATE'], how='outer'), dfs)
此解決方案利用functools 模組中的reduce 函數來迭代合併資料幀。 lambda 函數定義合併操作,使用指定的列進行連接('DATE'),並使用 'outer' 合併方法保留所有行。
乾淨且易於理解: 該解決方案提供了一種清晰簡潔的方法來合併多個資料幀,消除了複雜的嵌套合併的需要
有效處理多個資料幀:此解決方案可以處理任意數量的資料幀,使其可擴展且方便。
考慮以下內容dataframes:
df_1: May 19, 2017;1,200.00;0.1% May 18, 2017;1,100.00;0.1% May 17, 2017;1,000.00;0.1% May 15, 2017;1,901.00;0.1% df_2: May 20, 2017;2,200.00;1000000;0.2% May 18, 2017;2,100.00;1590000;0.2% May 16, 2017;2,000.00;1230000;0.2% May 15, 2017;2,902.00;1000000;0.2% df_3: May 21, 2017;3,200.00;2000000;0.3% May 17, 2017;3,100.00;2590000;0.3% May 16, 2017;3,000.00;2230000;0.3% May 15, 2017;3,903.00;2000000;0.3%
使用提供的解決方案,我們可以合併這些資料框:
df_merged = reduce(lambda left, right: pd.merge(left, right, on=['DATE'], how='outer'), dfs)
結果:
DATE VALUE1 VALUE2 VALUE3 May 15, 2017; 1,901.00;0.1%; 2,902.00;1000000;0.2%; 3,903.00;2000000;0.3%
以上是如何在Python中高效率地合併多個DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!