2
我有一个相当高的长度(100,000+)的熊猫数据框,我想合并这个数据框与另一个基于最接近的元素(通过索引)数据帧对象。例如,让我们说,对象1如下:根据最近的日期时间合并/加入数据帧到不同的数据框
DateTime x_1 y_1
2016-07-05 08:30:00 1 2
2016-07-05 08:30:01 3 4
2016-07-05 08:30:02 5 6
2016-07-05 08:30:03 7 8
2016-07-05 08:30:05 9 10
2016-07-05 08:30:11 11 12
和对象2如下:
DateTime x_2 y_2
2016-07-05 08:30:00 13 14
2016-07-05 08:30:05 15 16
2016-07-05 08:30:05 17 18
2016-07-05 08:30:10 19 20
我想回到一个新的对象,object3,它具有长度相同object2,现在包含object1中最接近object2时间的项目。 Object3,在这种情况下,应该是这样的:
DateTime x_2 y_2 x_1 y_1
2016-07-05 08:30:00 13 14 1 2
2016-07-05 08:30:05 15 16 9 10
2016-07-05 08:30:05 17 18 9 10
2016-07-05 08:30:10 19 20 11 12
我现在做的东西沿着这些路线来得到这个工作,但我得到重新索引错误(非唯一索引):
object3 = object2.join(object1.reindex(object2.index, method='nearest'), how='left')
它返回一个ValueError:
ValueError: cannot reindex a non-unique index with a method or limit
您所提供的多对一个例子发生在上日期时间是相同的合并。那是故意的吗?如果不是的话,你能否提供一个“关闭”意味着什么以及你希望如何处理它的例子? – piRSquared
@unutbu:是的!对不起,它的目的是要2016-06-05 08:30:10 – sos
@piRSquared:是的!这是故意的。我希望保留索引的重复项 – sos