首頁  >  文章  >  後端開發  >  如何合併一列上的資料幀,同時保留一個資料幀中的初始資訊?

如何合併一列上的資料幀,同時保留一個資料幀中的初始資訊?

Barbara Streisand
Barbara Streisand原創
2024-11-01 12:50:02432瀏覽

How to Merge DataFrames on a Column While Preserving the Initial Information in One DataFrame?

在保留初始資訊的同時合併列上的DataFrame

儘管使用Pandas 的合併功能,但在合併資料幀df1 和df2時遇到困難在「名稱」列上,同時保留df1 的資訊。

問題:

在合併運算中:
df1 = pd.merge(df1, df2, on = 'Name', how = 'outer')

您正在執行外部聯接,其中包括來自兩個資料幀的個體。這會導致 df2 中的個體包含在 df1 中,即使它們最初沒有出現在 df1 中。

解決方案:

要解決此問題,您可以使用以下方法之一:

方法1:使用set_index 建立的依系列對應:

df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex'])

此方法建立一個以'Name' 為索引的Series df2 的「性別」欄。然後,df1 的“Name”列會對應到該系列以分配匹配的“Sex”值。透過將缺失值設為 NaN 來解決。

方法2:執行左連接:

df = df1.merge(df2[['Name','Sex']], on='Name', how='left')

左連接可確保df1 中的個體優先,如果缺失值不存在於df2 中,則用NaN填充。

注意事項:

  • 多個合併列: 如果合併多列,請在'on' 參數中指定它們,例如on=['Year','Code'].
  • 重複值: 重複的合併列值可能會導致問題。考慮在合併之前刪除重複項或透過字典使用映射來選擇適當的值。

以上是如何合併一列上的資料幀,同時保留一個資料幀中的初始資訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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