我想为每个id每次将track==2
与具有track==1
的id的所有行进行比较,并查看time
中的差是否大于或等于0且小于相差2小时。如果此条件完成,则以某种方式对其进行标记,可能是一个带有哑元的新列,如果条件成功则为1,否则为0。
这个例子说明了我的问题(df比这个例子大得多)
time track id
2018-07-06 08:34:44 1 1
2018-07-06 09:15:46 1 1
2018-07-19 08:15:50 1 1
2018-07-24 11:16:23 1 1
2018-07-06 08:34:44 2 1
2018-07-06 09:15:46 2 1
2018-07-19 08:15:50 2 1
2018-07-24 11:16:23 2 1
2018-07-06 07:34:44 1 2
2018-07-06 07:36:46 1 2
2018-07-19 18:15:50 1 2
2018-07-24 19:16:23 1 2
2018-07-06 10:34:44 2 2
2018-07-06 10:15:46 2 2
2018-07-19 21:15:50 2 2
2018-07-24 23:16:23 2 2
可能的解决方案
time track id condition_complete
2018-07-06 08:34:44 1 1 0
2018-07-06 09:15:46 1 1 0
2018-07-19 08:15:50 1 1 0
2018-07-24 11:16:23 1 1 0
2018-07-06 08:34:44 2 1 1
2018-07-06 09:15:46 2 1 1
2018-07-19 12:19:50 2 1 0 # watch that 2018-07-19 12:19:50 - 2018-07-19 08:15:50 is greater than 2 hours so condition must not be completed
2018-07-24 11:16:23 2 1 1
2018-07-06 07:34:44 1 2 0
2018-07-06 07:36:46 1 2 0
2018-07-19 18:15:50 1 2 0
2018-07-24 19:16:23 1 2 0
2018-07-06 10:34:44 2 2 0
2018-07-06 10:15:46 2 2 0
2018-07-19 21:15:50 2 2 0
2018-07-24 20:16:23 2 2 1