2016-07-07 72 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行。