我有一本大型词典,其中包含事件(例如类别a,b或c),它们在一天中的开始时间和结束时间都不同。时间戳记间隔的日期经过午夜时可能会有所不同。但是最多两个日期。 示例:
{
'event1': {
start_time: 04/05/2016, 04:23:11,
end_time: 04/05/2016, 04:35:52,
type: 'a'}
}
我想可视化白天的并发类别数:00:00到23:59。说在08:01,同时有43个类别“ a”事件和22个类别b事件。为此,我想总结一天中每一分钟的并发事件数。
我已经建立了一个有效的示例,但是它效率低下,因此运行缓慢。
zero_data = np.zeros(shape=(1440, 3))
df = pd.DataFrame(zero_data, columns=['a', 'b', 'c'], index=pd.date_range( start='01/01/2019, 00:00', end='01/01/2019, 23:59', freq='1min'))
for k,v in dict:
... 'extract the event times' ..
interval = pd.Interval(pd.Timestamp(start_time), pd.Timestamp(end_time))
for minute in df.index:
if minute in interval:
df.loc[minute, event] = df.loc[minute, event] + 1
出现一些问题:
我敢肯定,这样做可以更优雅,更快捷。使用日期时间函数可以更高效地直接加入而不是进行迭代。我就是不知道有什么建议吗?