python(pandas) 时间段有交集求并集问题

新手上路,请多包涵

问题描述

现有如下数据,记录了用户进出直播间日志。需要进行如下数据处理:

1、由于有用户在同一房间中时间段有交集(如用户1在房间1),需要取得其并集。
2、由于有的用户(如用户2在房间1)时间跨了3天,要进行拆分到每天,以便统计每天的用户数。

roomid    userid    start_time    end_time
1    1    2018-01-01 01:01:01    2018-01-01 01:10:01
1    2    2018-01-01 01:01:02    2018-01-01 01:01:05
1    1    2018-01-01 01:01:02    2018-01-01 01:11:01
2    7    2018-01-01 01:01:03    2018-01-01 01:11:05
2    1    2018-01-01 01:01:03    2018-01-03 01:11:01
1    3    2018-01-01 01:01:05    2018-01-01 01:02:05
1    1    2018-01-01 01:01:05    2018-01-01 01:10:01
2    4    2018-01-01 01:03:02    2018-01-01 01:12:05
2    5    2018-01-01 01:11:02    2018-01-01 01:12:05
2    6    2018-01-01 01:15:02    2018-01-01 01:16:05
2    8    2018-01-01 23:01:03    2018-01-02 01:11:01
1    1    2018-01-01 23:01:05    2018-01-02 01:21:01

想得到的结果如下:

roomid    userid    start_time    end_time
1    1    2018-01-01 01:01:01    2018-01-01 01:11:01
1    2    2018-01-01 01:01:02    2018-01-01 01:01:05
2    7    2018-01-01 01:01:03    2018-01-01 01:11:05
2    1    2018-01-01 01:01:03    2018-01-01 23:59:59
1    3    2018-01-01 01:01:05    2018-01-01 01:02:05
2    4    2018-01-01 01:03:02    2018-01-01 01:12:05
2    5    2018-01-01 01:11:02    2018-01-01 01:12:05
2    6    2018-01-01 01:15:02    2018-01-01 01:16:05
2    8    2018-01-01 23:01:03    2018-01-01 23:59:59
1    1    2018-01-01 23:01:05    2018-01-01 23:59:59
2    8    2018-01-02 00:00:00    2018-01-02 01:11:01
1    1    2018-01-02 00:00:00    2018-01-02 01:21:01
2    1    2018-01-02 00:00:00    2018-01-02 23:59:59
2    1    2018-01-03 00:00:00    2018-01-03 01:11:01

想用pandas实现,但一直没有好的解决办法,求大神提供指导。感谢!

阅读 2.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题