У меня есть pandas
dataframe
, с Start
и End
datatime.
df=pd.DataFrame(data=pd.date_range('20100201', periods=10, freq='5h3min'),columns=['Start'])
df.loc[:,'End']=df.loc[:,'Start']+pd.Timedelta(4,'h')
Можно ожидать, что
Start
и End
будут внутренне отсортированы, но между последовательными рядами могут возникать пробелы / перекрытия.
Я хотел бы создать новый кадр данных с той разницей, что если строка содержит полночь (например, полночь содержится в [Start
, End
]), то строка затем разделяется на две части до и после полуночи
пример:
Start End
0 2010-02-01 00:00:00 2010-02-01 04:00:00
1 2010-02-01 05:03:00 2010-02-01 09:03:00
2 2010-02-01 10:06:00 2010-02-01 14:06:00
3 2010-02-01 15:09:00 2010-02-01 19:09:00
4 2010-02-01 20:12:00 2010-02-02 00:12:00
5 2010-02-02 01:15:00 2010-02-02 05:15:00
должно быть
Start End
0 2010-02-01 00:00:00 2010-02-01 04:00:00
1 2010-02-01 05:03:00 2010-02-01 09:03:00
2 2010-02-01 10:06:00 2010-02-01 14:06:00
3 2010-02-01 15:09:00 2010-02-01 19:09:00
-----------------------------------------
4 2010-02-01 20:12:00 2010-02-01 23:59:00
5 2010-02-02 00:00:00 2010-02-02 00:12:00
-----------------------------------------
6 2010-02-02 01:15:00 2010-02-02 05:15:00