如何使用pandas合并来自不同df的数据

时间:2016-07-07 12:59:49

标签: python pandas

我有2个数据帧,我想得到df,在第一个文件中我有很多数据,在第二个文件中我有一个iD列表,我想从第一个文件中获取。

我用

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 :(得分:0)

IIUC您希望合并两个数据框,只保留id中的buys?然后你就可以通过你how中的merge选项:

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

请注意,如果id中的buys不在chunk.ID中,您将获得NaN,其中缺少相应的日期。如果您不想要,请将how选项更改为inner

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

这样,您将只获取两个数据帧中存在的行。