【发布时间】:2018-10-24 11:08:08
【问题描述】:
我有一个pandasdataframe,带有Start 和End 数据时间。
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
【问题讨论】:
-
午夜是什么意思
-
00:00 基本上是 datetime.min.time()
标签: python pandas datetime dataframe