在保留初始資訊的同時合併列上的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填充。
注意事項:
以上是如何合併一列上的資料幀,同時保留一個資料幀中的初始資訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!