【发布时间】:2021-11-13 20:51:50
【问题描述】:
我创建了一个间隔为 30 分钟的时隙数据帧,从 2020 年 1 月 10 日到 2020 年 3 月 10 日,如下所示:
timeInterval=pd.DataFrame()
startYear = 2020
startMonth = 10
startDay = 1
endYead = 2020
endMonth = 10
endDay = 3
interval = 30
startDate = str(datetime(startYear,startMonth,startDay).date())
endDate = str(datetime(endYear,endMonth,endDay).date())
endDateMinus1 = str(datetime(endYear,endMonth,endDay)-timedelta(seconds=1))
timeInterval['Start']=pd.date_range(start=startDate+' 00:00:00', end=endDateMinus1,freq=str(interval)+'T')
timeInterval['End']= pd.date_range(start=startDate+' 00:'+str(interval)+':00', end=endDate+' 00:00:00',freq=str(interval)+'T')
Start End
0 2020-10-01 00:00:00 2020-10-01 00:30:00
1 2020-10-01 00:30:00 2020-10-01 01:00:00
2 2020-10-01 01:00:00 2020-10-01 01:30:00
3 2020-10-01 01:30:00 2020-10-01 02:00:00
4 2020-10-01 02:00:00 2020-10-01 02:30:00
... ... ...
91 2020-10-02 21:30:00 2020-10-02 22:00:00
92 2020-10-02 22:00:00 2020-10-02 22:30:00
93 2020-10-02 22:30:00 2020-10-02 23:00:00
94 2020-10-02 23:00:00 2020-10-02 23:30:00
95 2020-10-02 23:30:00 2020-10-03 00:00:00
我有一个 DataFrame df 有 100k+ 行,我需要通过它并根据它所在的时隙进行计数。示例 DataFrame 如下:
Entry_Time Exit_Time Sector
0 2020-10-01 22:24:00 2020-10-01 22:50:55 North
1 2020-10-01 22:32:00 2020-10-01 22:53:00 West
2 2020-10-01 22:44:00 2020-10-01 23:01:53 Central
3 2020-10-01 22:50:55 2020-10-01 23:04:07 North
4 2020-10-01 22:53:00 2020-10-01 23:03:54 North
5 2020-10-01 23:01:53 2020-10-01 23:13:44 West
6 2020-10-01 23:04:07 2020-10-01 23:26:48 Central
7 2020-10-01 23:13:44 2020-10-01 23:28:00 Central
8 2020-10-02 15:02:00 2020-10-02 15:09:31 West
9 2020-10-02 15:09:31 2020-10-02 15:25:47 North
我需要根据timeInterval数据框找到df每一行所在的时隙。所以预期的结果可能如下所示:
Entry_Time Exit_Time Sector Timeslot
0 2020-10-01 22:24:00 2020-10-01 22:50:55 North 2020-10-01 22:00:00 - 2020-10-01 22:30:00,2020-10-01 22:30:00 - 2020-10-01 23:00:00
1 2020-10-01 22:32:00 2020-10-01 22:53:00 West 2020-10-01 22:30:00 - 2020-10-01 23:00:00
2 2020-10-01 22:44:00 2020-10-01 23:01:53 Central 2020-10-01 22:30:00 - 2020-10-01 23:00:00,2020-10-01 23:00:00 - 2020-10-01 23:30:00
3 2020-10-01 22:50:55 2020-10-01 23:04:07 North 2020-10-01 22:30:00 - 2020-10-01 23:00:00,2020-10-01 23:00:00 - 2020-10-01 23:30:00
4 2020-10-01 22:53:00 2020-10-01 23:03:54 North 2020-10-01 22:30:00 - 2020-10-01 23:00:00,2020-10-01 23:00:00 - 2020-10-01 23:30:00
5 2020-10-01 23:01:53 2020-10-01 23:13:44 West 2020-10-01 23:00:00 - 2020-10-01 23:30:00
6 2020-10-01 23:04:07 2020-10-01 23:26:48 Central 2020-10-01 23:00:00 - 2020-10-01 23:30:00
7 2020-10-01 23:13:44 2020-10-01 23:28:00 Central 2020-10-01 23:00:00 - 2020-10-01 23:30:00
8 2020-10-02 15:02:00 2020-10-02 15:09:31 West 2020-10-02 15:00:00 - 2020-10-02 15:30:00
9 2020-10-02 15:09:31 2020-10-02 15:25:47 North 2020-10-02 15:00:00 - 2020-10-02 15:30:00
【问题讨论】:
标签: python-3.x pandas datetime