2016-07-07 75 views
0

我有2個數據框,我想要得到df,第一個文件中的第一個文件中有很多數據,第二個文件中有我想要的iD的列表第一個文件。如何使用熊貓合併來自不同df的數據

我用

merged = pd.merge(buys, chunk, left_on='id', right_on='ID') 

其中chunk - 第一(大)文件的一部分。和buys - 文件列表id。在輸出文件中,我有ID,那不在buys。 我做錯了什麼?

buys

id 
7602962fb83ac2e2a0cb44158ca88464 
bc8a731e4c7e6f6b96e56ebe7f766bcd 
a703114aa8a03495c3e042647212fa63 
77138e9245857e5449e9474293e31e19 

chunk

id date 
7602962fb83ac2e2a0cb44158ca88464 01.01.2016 
7602962fb83ac2e2a0cb44158ca88464 02.01.2016 
7602962fb83ac2e2a0cb44158ca88464 03.01.2016 
77138e9245857e5449e9474293e31e19 09.05.2016 
77138e9245857e5449e9474293e31e19 10.05.2016 
671cfd6702c74f017209c2f1a888c279 10.01.2016 
671cfd6702c74f017209c2f1a888c279 11.01.2016 
029cfd6702c68f243423c2f1a234c232 11.03.2016 

,我需要得到

7602962fb83ac2e2a0cb44158ca88464 01.01.2016 
7602962fb83ac2e2a0cb44158ca88464 02.01.2016 
7602962fb83ac2e2a0cb44158ca88464 03.01.2016 
77138e9245857e5449e9474293e31e19 09.05.2016 
77138e9245857e5449e9474293e31e19 10.05.2016 
+1

你可以發佈樣本數據和期望的輸出嗎? –

+0

@JoeR,添加數據幀 – ldevyataykina

+0

將'how = left'添加到'pd.merge'。 – ytk

回答

0

IIUC要合併你的兩個dataframes,只是保持id目前在buys ?然後,你卡恩傳遞到自己的merge這樣的how選項:

merged = pd.merge(buys, chunk, left_on='id', right_on='ID', how = 'left') 

需要注意的是,如果有idbuys不在chunk.ID你會得到NaN,其中相應的日期丟失。如果你不希望出現這種情況,則how選項更改爲inner

merged = pd.merge(buys, chunk, left_on='id', right_on='ID', how = 'inner') 

這樣,你將只能得到那些存在於dataframes行。