使用两列数据作为要求,连接两个pandas dataframe的特定行

2024-06-07 09:00:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧DF1和DF2,其中

两者都有子参数“data”和“metadata”,DF1的行数远远多于DF2

DF1 
     DATA            METADATA
     0 1 2 3 4 5     attr1      attr2        ..  attrN
11   1 1 1 1 1 1     000        apple
13   1 1 1 1 1 1     140        orange
19   1 1 1 1 1 1     199        pineapple
25   1 5 1 1 1 2     000        apple
..

DF2 
     DATA        METADATA
     x y z k     attr1      attr2            ..  attrK
000  2 2 2 2     000        bean
001  2 2 2 2     001        bean
002  2 2 2 2     002        bean
003  2 2 2 2     003        bean
..
199  2 2 2 2     199        bean
200  2 2 2 2     000        orange
201  2 2 2 2     001        orange
..
340  1 2 3 4     140        orange
..
500  4 3 2 1     000        apple
..
700  2 2 2 2     350        bread
..
999  5 5 5 5     199        pineapple

我想根据DF2中的属性将DF2中的列特定行连接到DF1中的行。

具体而言:

对于DF1中的每一行,我只想连接DF2中的行中的数据,这样DF1中的条目就可以了。METADATA.attr1&;DF2。METADATA.attr1和DF1。METADATA.attr2&;DF2。METADATA.attr2每行都是一样的。结果如下:

^{pr2}$

我通过循环完成了这项工作,但是我得到了一个糟糕的运行时,并且有很多数据需要我来使它运行得更快,并且应该有一个快速和简单的方法来通过熊猫来完成这一点(我想!)


Tags: 数据appledata参数ampdf1metadatadf2
1条回答
网友
1楼 · 发布于 2024-06-07 09:00:27

听起来你想在attr1上进行合并,类似于:

df1.merge(df2, how='left')

例如(稍作调整):

^{pr2}$

注意:这在共享列上合并,在本例中是元数据attr1和attr2。参见merge section of the docs。在

相关问题 更多 >

    热门问题