搜尋
首頁後端開發Python教學如何在沒有複雜迭代器的情況下基於公共列有效地合併多個 DataFrame?

How can you efficiently merge multiple DataFrames based on a common column without complex iterators?

合併多個DataFrame

問題陳述

合併多個DataFrame 可能是一項艱鉅的任務,尤其是當DataFrame 具有不同的值時形狀和結構。最常見的方法是迭代地使用 merge() 函數,這對於大量資料幀來說可能會變得複雜且不可讀。

問題

一個人如何合併多個高效且優雅地基於公共列的資料幀,無需訴諸遞歸或複雜的方法迭代器?

答案

reduce() 函數為合併多個資料幀提供了遞歸的替代方法。 reduce() 函數迭代地將函數應用於項目列表,將其減少為單一值。在本例中,函數是 merge() 函數,項目列表是資料幀列表。

import pandas as pd
from functools import reduce

# Load dataframes
df1 = pd.read_csv('dataframe1.csv')
df2 = pd.read_csv('dataframe2.csv')
df3 = pd.read_csv('dataframe3.csv')

# Create a list of dataframes
dataframes = [df1, df2, df3]

# Merge dataframes
df_merged = reduce(lambda left, right: pd.merge(left, right, on='date', how='outer'), dataframes)

說明

reduce()呼叫函數時,函數 pd.merge 作為第一個參數,資料幀列表作為第二個參數。 pd.merge() 函數合併兩個資料幀,reduce() 函數迭代地將結果與列表中的下一個資料幀合併,將列表縮減為單一合併的資料幀。

on='date'參數指定應基於「日期」列執行合併,假定該列對所有資料幀都是通用的。 how='outer' 參數指示兩個資料幀中的所有行都應包含在合併的資料幀中,無論它們是否具有「日期」列的相應值。這可確保具有相同日期值的所有行合併為一行。

結果

df_merged 變數現在包含一個合併的資料幀,其中包含來自各個資料幀,每個資料幀中的相應行根據「日期」列對齊。該方法高效、靈活且易於閱讀,使其成為合併大量資料幀的理想解決方案。

以上是如何在沒有複雜迭代器的情況下基於公共列有效地合併多個 DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python中有可能理解嗎?如果是,為什麼以及如果不是為什麼?Python中有可能理解嗎?如果是,為什麼以及如果不是為什麼?Apr 28, 2025 pm 04:34 PM

文章討論了由於語法歧義而導致的Python中元組理解的不可能。建議使用tuple()與發電機表達式使用tuple()有效地創建元組。 (159個字符)

Python中的模塊和包裝是什麼?Python中的模塊和包裝是什麼?Apr 28, 2025 pm 04:33 PM

本文解釋了Python中的模塊和包裝,它們的差異和用法。模塊是單個文件,而軟件包是帶有__init__.py文件的目錄,在層次上組織相關模塊。

Python中的Docstring是什麼?Python中的Docstring是什麼?Apr 28, 2025 pm 04:30 PM

文章討論了Python中的Docstrings,其用法和收益。主要問題:Docstrings對於代碼文檔和可訪問性的重要性。

什麼是lambda功能?什麼是lambda功能?Apr 28, 2025 pm 04:28 PM

文章討論了Lambda功能,與常規功能的差異以及它們在編程方案中的效用。並非所有語言都支持他們。

什麼是休息時間,繼續並通過python?什麼是休息時間,繼續並通過python?Apr 28, 2025 pm 04:26 PM

文章討論了休息,繼續並傳遞Python,並解釋了它們在控制循環執行和程序流中的作用。

Python的通行證是什麼?Python的通行證是什麼?Apr 28, 2025 pm 04:25 PM

本文討論了Python中的“ Pass”語句,該語句是函數和類等代碼結構中用作佔位符的空操作,允許在沒有語法錯誤的情況下實現將來實現。

我們可以在Python中傳遞作為參數的函數嗎?我們可以在Python中傳遞作為參數的函數嗎?Apr 28, 2025 pm 04:23 PM

文章討論了將功能作為Python中的參數,突出了模塊化和用例(例如分類和裝飾器)等好處。

Python中的 /和//有什麼區別?Python中的 /和//有什麼區別?Apr 28, 2025 pm 04:21 PM

文章在Python中討論 /和//運營商: / for for True Division,//用於地板部門。主要問題是了解它們的差異和用例。 Character數量:158

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器