我有一个数据框,用于显示每个人的预定约会的开始和结束时间(请注意,其中一些约会可以相互重叠)。
df = pd.DataFrame({'Individual': ['A','A','A','A','A','A','A','A','B','B','B','B','B','B','B'],
'Start': ['2019-10-01 00:00','2019-10-01 06:30','2019-10-01 12:30','2019-10-01 16:00','2019-10-02 09:20','2019-10-02 14:00','2019-10-02 20:00','2019-10-03 15:00','2019-10-01 00:00','2019-10-01 09:00','2019-10-01 15:00','2019-10-01 20:00','2019-10-02 11:45','2019-10-02 18:00','2019-10-04 09:02'],
'End': ['2019-10-01 08:00','2019-10-01 12:00','2019-10-01 15:00','2019-10-02 07:00','2019-10-02 11:00','2019-10-02 18:00','2019-10-03 10:00','2019-10-04 12:00','2019-10-01 06:15','2019-10-01 13:20','2019-10-01 20:00','2019-10-02 10:00','2019-10-02 15:00','2019-10-04 06:13','2019-10-04 17:10']})
使用此信息,我想确定几件事:1)每个个人日历的空闲时间为DateTime,以及2)每个空闲时间段的持续时间(以分钟为单位)。
我不太确定该如何开始。我最初的想法是合并重叠的预定约会,然后与它的前身相关以识别空闲时间。不确定是否有更简单的方法来完成此操作。
以下是预期结果:
results = pd.DataFrame({'Individual': ['A','A','A','A','A','A','B','B','B','B','B'],
'Free Time Start': ['2019-10-01 12:00','2019-10-01 15:00','2019-10-02 07:00','2019-10-02 11:00','2019-10-02 18:00','2019-10-03 10:00','2019-10-01 06:15','2019-10-01 13:20','2019-10-02 10:00','2019-10-02 15:00','2019-10-04 06:13'],
'Duration': [30,60,140,180,120,300,165,100,105,180,169]})
任何帮助将不胜感激