通过和diff迭代面板数据组

时间:2018-08-03 18:33:15

标签: python python-3.x pandas group-by diff

我想为每个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

0 个答案:

没有答案