我有一个df 1,其中包含列“报告日期”和“订单”,df 2包含列“lastoccurance”和“订单”,我想合并df 1和df 2,条件为lastoccurrence =报告日期+或- 30分钟(范围为-/+ 30分钟),订单=订单注意:报告日期和最后一次出现是日期时间列
例如:输入
DF1
Reported Date order
12/14/2022 6:10:32 PM A
9/15/2022 2:45:57 AM B
9/15/2022 11:08:26 AM C
DF2
lastoccurrence orders
12/14/2022 6:15:35 PM A
12/14/2022 6:00:35 PM A
12/14/2022 5:40:35 PM A
12/14/2022 6:40:35 PM A
12/14/2022 6:10:32 PM B
9/15/2022 11:20:26 AM C
9/15/2022 11:08:26 AM A
产出
DF3
lastoccurrence orders
12/14/2022 6:15:35 PM A
12/14/2022 6:00:35 PM A
12/14/2022 5:40:35 PM A
12/14/2022 6:40:35 PM A
9/15/2022 11:20:26 AM C
1条答案
按热度按时间nzk0hqpo1#
首先将两列都转换为日期时间,然后按
orders
和Series.map
MapReported Date
,因此可以按Series.between
在容差范围内进行比较:或者使用带公差参数的
merge_asof
和direction='nearest'
: