我想获取时间间隔,从时间轴中减去时间窗口。有没有一种有效的方法使用熊猫间隔和时间段。
我试图在SO上使用pandas周期和Intervals类来寻找解决方案,但找不到这种可能是因为Intervals是pandas中的不可变对象(参考https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Interval.html#pandas-interval)。
我发现了使用第三方库Subtract Overlaps Between Two Ranges Without Sets的相关解决方案,但是使用datetime
或Timestamp
对象并没有特别的解决方案。
import pandas as pd
start = pd.Timestamp('00:00:00')
end = pd.Timestamp('23:59:00')
# input
big_time_interval = pd.Interval(start, end)
smaller_time_intervals_to_subtract = [
(pd.Timestamp('01:00:00'), pd.Timestamp('02:00:00')),
(pd.Timestamp('16:00:00'), pd.Timestamp('17:00:00'))]
# output
_output_time_intervals = [
(pd.Timestamp('00:00:00'), pd.Timestamp('01:00:00')),
(pd.Timestamp('02:00:00'), pd.Timestamp('16:00:00')),
(pd.Timestamp('17:00:00'), pd.Timestamp('23:59:00'))]
output_time_intervals = list(
map(lambda interval: pd.Interval(*interval), _output_time_intervals))
任何帮助将不胜感激。