我有两个数据框list1和list2,它们分别具有不同数量的带有随机索引的行。list1有〜240,000行,而list2有〜390,000行。根据['time']列,从最早时间到最新时间对它们进行了排序。它们大致如下所示:
清单1
time rates
299 09:31 1.30
1230 10:34 2.42
32 13:40 1.49
... ...
清单2
time Symbol IV
78 10:31 aqb 7
121 10:59 cdd 3
3240 11:19 oty 4
393 13:54 zqb 8
44 14:13 omu 1
...
list2上的每一行都有一个['time']值。我希望list2中的每一行都具有list1中最新的['rates']值,且该值不晚于其自身的['time']值。在此之前,可以将相同的['rates']值填充到list2中(很抱歉,我知道这很令人困惑)。下面显示了所需结果的示例并进行了说明。
期望的结果
time Symbol IV rates
78 10:31 aqb 7 1.30
121 10:59 cdd 3 2.42
3240 11:19 oty 4 2.42
393 13:54 zqb 8 1.49
44 14:13 omu 1 1.49
list1中的第一行从9:31开始,第二行从10:34开始。list2的第一行位于10:31,因此应使用9:31的['rates']值代替10:34的rate值,因为10:34晚于10:31。list2中的下一行是10:59。list1中最后一个不在10:59之后的行是10:34,因此将10:34中的值2.42填充。list2中的第三行与11:19相同。
在不使用for循环缓慢遍历每一行的iterrows()的情况下,如何做到这一点,如果在每个数据帧中只有几十万行的情况下进行其他检查,那将需要花费很长的时间来完成上述工作?谢谢!
qq_笑_17
相关分类