【发布时间】:2017-10-08 08:36:10
【问题描述】:
我有两个数据框 DF1 和 DF2,其中
都有子帧“数据”和“元数据”,并且 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 中的条目是同样,对于每一行。这里的结果是:
DF3 (desired result)
DATA METADATA
0 1 2 3 4 5 x y z k attr1 attr2 .. attr N
11 1 1 1 1 1 1 4 3 2 1 000 apple
13 1 1 1 1 1 1 1 2 3 4 140 orange
19 1 1 1 1 1 1 5 5 5 5 199 pineapple
25 1 5 1 1 1 2 4 3 2 1 000 apple
我已经设法通过循环来做到这一点,但是我得到了一个糟糕的运行时间并且有很多数据我需要让它运行得更快,并且应该有一个快速简单的方法来通过 pandas 来做到这一点(我认为! )
【问题讨论】:
标签: python python-3.x pandas