我有一组数据有一堆开始和结束时间,使用pandas我正在寻找获得重叠开始和结束时间的最佳方法,这意味着发生的最大开始和结束时间。
该表是具有开始和结束时间的会话,其目的是创建一个线图,显示会话随时间的最大并发性。
答案 0 :(得分:0)
import numpy as np
import pandas as pd
ranges = np.asarray([(np.datetime64('2013-12-24T00:00:00Z'), np.datetime64('2013-12-24T00:02:00Z')),
(np.datetime64('2013-12-24T00:02:00Z'), np.datetime64('2013-12-24T00:04:00Z')),
(np.datetime64('2013-12-24T00:03:00Z'), np.datetime64('2013-12-24T00:05:00Z'))])
us = pd.Series(index=np.unique(ranges), data=0)
for start, end in ranges:
us[start:end] += 1
print us
输出:
2013-12-24 00:00:00 1
2013-12-24 00:02:00 2
2013-12-24 00:03:00 2
2013-12-24 00:04:00 2
2013-12-24 00:05:00 1
注意:您可能希望以不同方式处理边缘(例如,2013-12-24 00:02:00 2
)