我的问题是关于两个带有时间戳信息的Pandas Dataframe - 我的左数据帧有一个静态时间戳,而右数据帧有一个带有开始和结束时间的时间'窗口'。我想根据左边的时间戳在正确的时间窗口中的开始值和结束值之间“左”合并这些数据帧。如果我直接比较两个时间戳,pd.merge_asof()
会让我大部分时间都在那里 - 但是,我的时间窗口值和持续时间会有所不同。
这将是目标合并后有关列的简化表示:
timestamp_left start_right end_right
2014-08-30 18:00:00 2014-08-30 15:00:00 2014-08-31 03:00:00
2017-03-31 15:30:00 nan nan
编写此表达式非常简单,但我似乎无法在pandas
文档中找到有关如何在合并中调用函数的任何信息。
提前致谢。
更新:
找到问题here的解决方案。这个笛卡尔积方法和子查询是有效的,因为我的数据帧尺寸相当小[8000x30]和[50x5]。但是,对于较大的数据集和更复杂的问题,在函数调用的基础上合并返回布尔值而不是测试相等性是非常有用的。