當我合併兩個簡單的數據框時,一切正常。但是,當我將相同的代碼應用於我的真實數據幀時,合併無法正常工作:左側合併不起作用
我想合併df1
和df2
,使用左連接列A
。
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})
df2 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3','A4','A5'],
'C': ['C0', 'C1', 'C2', 'C3','C4','C5'],
'D': ['D0', 'D1', 'D2', 'D3','D4','A5']})
result = pd.merge(df1, df2[["A","C"]], how='left', on='A')
在這種情況下,結果是正確的(行中result
數目是一樣的df1
)。
但是,當我在我的實際數據上運行相同的代碼時,result
中的行數遠遠大於df1
,與df2
更相似。
result = pd.merge(df1, df2[["ID","EVENT"]], how='left', on='ID')
字段ID
是String類型(astype(str)
)的。
這可能是什麼原因?我不能在這裏發佈真正的數據集,但也許一些跡象仍然可以根據我的解釋完成。謝謝。
UDPATE:
我檢查數據幀result
,我可以看到具有相同ID
許多重複的行。爲什麼?
也許你在df1或df2中有dup ID – steboc