4
我有两个数据帧,说A
和B
,有一些列名为attr1
,attr2
,attrN
。基于最近值合并熊猫数据帧
我有一定的距离测量,我想合并数据帧,使A
中的每一行与B
中具有最短距离属性之间的行合并。请注意,合并时可以重复B
中的行。
例如(有一个属性让事情变得简单),使用绝对差距离|A.attr1 - B.att1|
A | attr1 B | attr1
0 | 10 0 | 15
1 | 20 1 | 27
2 | 30 2 | 80
应该产生以下合并表
M | attr1_A attr1_B
0 | 10 15
1 | 20 15
2 | 30 27
我做的电流的方式合并这两个表这是缓慢的,并且基于比较每行A
与B
的每一行,但代码也不明确,因为我必须保留用于合并的索引并且我根本不满意,但是我可以没有拿出更好的解决方案。
如何使用熊猫来执行上述合并?有没有任何方便的方法或功能可以帮助您?
编辑:只是为了澄清,在数据框中还有其他列没有用于距离计算,但也必须合并。你可以做到这一点如下
因此,如果我正确地得到它,您首先计算产品(A中的每一行与B中的每一行),然后过滤掉不符合给定条件的行。绝对比我的解决方案更可读,谢谢! – AkiRoss
@AkiRoss是的,我创建了A和B的笛卡尔积,然后使用条件进行过滤。 –
非常有趣的解决方案! – MaxU