我正在合并 2 個相當大的資料幀,RD_4ML 的形狀是 (97058, 24),而 NewDF 的形狀是 (104047, 3)。他們共享一個名為“personUID”的通用列,下面是我使用的合并代碼。
Final_DF = RD_4ML.merge(NewDF, how='left', on='personUID')
Final_DF.fillna('none', inplace=True)
Final_DF.sample()
DF樣本輸出:
|personUID| |代碼| |死亡| |診斷代碼型別| |lr|
|abc123| |ICD10| |1| |無| |無|
基本上來自 RD_4ML 的列填充,而來自 NewDF 的 2 列回傳“無”值。有誰知道如何解決這樣的錯誤?
uj5u.com熱心網友回復:
我認為兩個資料框中的“personUID”列不匹配。確保它們具有相同的資料型別。
uj5u.com熱心網友回復:
Merge withhow='left'從左側資料框中獲取每個條目,并嘗試在右側資料框中找到相應的匹配 id。對于所有不匹配的,它將為來自右框架的列填充 nans。在 SQL 中稱為左連接。作為一個例子,你可以看看這個here
df1 = pd.DataFrame({"uid":range(4), "values": range(4)})
df2 = pd.DataFrame({"uid":range(5, 9), "values2": range(4)})
df1.merge(df2, how="left", on='uid')
# OUTPUT
uid values values2
0 0 0 NaN
1 1 1 NaN
2 2 2 NaN
3 3 3 NaN
在這里,您會看到左側資料框中的所有 uid 最終都在合并的資料框中,并且由于未找到匹配的條目,因此右側資料框中的列設定為 NaN。
如果您的目標是只得到匹配的那些,您可以從“左”更改為“內”。有關這方面的更多資訊,請查看大熊貓檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415732.html
標籤:
下一篇:對資料框串列進行排序
