Amy 原创整理|资料核验:2026-10-31
merge_asof 按键值距离把左表记录与右表记录匹配,常用于时间数据。pandas 官方文档要求两张表先按合并键升序排列。
三个方向要分清:backward 找右表中最后一个键值小于或等于左表键值的记录;forward 找第一个大于或等于的记录;nearest 则比较绝对距离。需要先限定同一设备、账户等组别时,可使用 by 参数。
教学示例:左表时间为10:00,右表有09:58和10:01。nearest 会偏向较近的10:01;若任务是在10:00作决定,这条记录在当时尚未出现,直接使用就可能泄漏未来信息。这里的时间是教学构造,并非真实交易数据。
Amy的检查步骤:先写清“当时允许知道哪些信息”,再选方向;用几个边界时间人工检查匹配结果,最后再处理整张表。对齐得上只说明算法找到了记录,不自动说明该匹配符合业务时序。
官方来源:
https://pandas.pydata.org/docs/reference/api/pandas.merge_asof.html