首頁 >資料庫 >mysql教程 >如何在具有多個連接列的多個資料幀之間執行 Pandas 左外連接?

如何在具有多個連接列的多個資料幀之間執行 Pandas 左外連接?

Barbara Streisand
Barbara Streisand原創
2025-01-04 00:51:441038瀏覽

How to Perform a Pandas Left Outer Join Across Multiple DataFrames with Multiple Join Columns?

Pandas 在具有多個列的多個資料幀上進行左外連接

在Pandas 中,合併資料幀是一項常見任務。當執行涉及多個表和多個連接列的連接時,這會變得更加複雜。對於左外連接,我們保留左側資料幀中的所有行,並填充右側資料幀中的缺失值。

要將資料幀df1、df2 和df3 與多個連接列合併,我們建議分兩步驟進行方法:

第1 步:合併df1 和df2

s1 = pd.merge(df1, df2, how='left', on=['Year', 'Week', 'Colour'])

第2 步:將第1 步的結果與df3

合併,因為我們不需要第二次合併的Year 列,我們可以在加入之前將其從df3 中刪除:

df3_dropped = df3.drop('Year', axis=1)
df = pd.merge(s1, df3_dropped, how='left', on=['Week', 'Colour'])

這給了我們所需輸出:

   Year Week Colour  Val1  Val2 Val3
0  2014    A    Red    50   NaN  NaN
1  2014    B    Red    60   NaN   60
2  2014    B  Black    70   100   10
3  2014    C    Red    10    20  NaN
4  2014    D  Green    20   NaN   20

以上是如何在具有多個連接列的多個資料幀之間執行 Pandas 左外連接?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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