如何识别时间段并按这些时间段将结果分组?

时间:2019-05-13 23:12:02

标签: pandas pandas-groupby

我有一个类似于以下的数据框,其中存储了项目列表的属性信息。每个属性都有与其关联的开始时间和结束时间。如果某个属性的结束时间为NaT,则表示该属性/值尚未结束,因此该项目当前具有该属性/值:

df
    item  property  val     propertyStartTime       propertyEndTime
0      A         x    a   2019-03-31 17:45:54   2019-04-20 10:45:44
1      A         x    b   2019-04-20 10:45:54   2019-04-30 17:45:38
2      A         x    a   2019-04-30 17:45:54                   NaT
3      A         y    c   2019-03-31 17:46:14   2019-04-30 23:59:38
4      A         y    d   2019-05-01 00:00:00                   NaT
5      A         z    e   2019-03-31 17:46:33                   NaT

在上面的示例数据框中,项目A当前具有3个属性:x = a,y = d,z = e。但是,有没有一种直接方法可以确定数据帧中的其他时间段? (可能精确到5分钟的窗口)。

对于上面的示例数据框,生成的组将类似于以下内容:

From 2019-03-31 17:45:54 to 2019-04-20 10:45:44
grp1
    item  property  val
0      A         x    a
3      A         y    c
5      A         z    e

From 2019-04-20 10:45:54 to 2019-04-30 17:45:38
grp2
    item  property  val
1      A         x    b
3      A         y    c
5      A         z    e

From 2019-04-30 17:45:54  to 2019-04-30 23:59:38
grp3
    item  property  val  
2      A         x    a
3      A         y    c
5      A         z    e

And finally, from 2019-05-01 00:00:00 to now
grp4
    item  property  val
2      A         x    a
4      A         y    d
5      A         z    e

0 个答案:

没有答案