首頁 > 後端開發 > Python教學 > 如何在Python中高效率地合併多個DataFrame?

如何在Python中高效率地合併多個DataFrame?

DDD
發布: 2024-11-29 13:13:09
原創
782 人瀏覽過

How to Efficiently Merge Multiple DataFrames in Python?

如何合併多個資料幀

問題

合併多個資料幀可能會很複雜且令人沮喪,尤其是當資料幀數量增加時。雖然可以使用巢狀合併函數,但這種方法變得難以管理且容易出錯。

解決方案

要以更優雅、更有效率的方式合併多個資料幀,請考慮以下解決方案:

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

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