具有特定时间范围的 Pandas date_range
Posted
技术标签:
【中文标题】具有特定时间范围的 Pandas date_range【英文标题】:Pandas date_range with specific time ranges 【发布时间】:2017-11-09 01:52:07 【问题描述】:我正在尝试使用pd.date_range()
创建一个跨越多天的DatetimeIndex
,频率以秒为单位。但是,每天的时间范围应限制在 05:00:00 到 22:00:00 之间
类似的东西(当然行不通):
times_c = pd.date_range(start="2015-01-01",end="2015-01-10",freq="S")
mask_c = ((times_c.time < dt.datetime.strptime("22:00:00", "%H:%M:%S")) | (times_c.time > dt.datetime.strptime("05:00:00","%H:%M:%S")))
times_c = times_c[mask_c]
【问题讨论】:
【参考方案1】:使用indexer_between_time
:
times_c[times_c.indexer_between_time('05:00:00', '22:00:00')]
【讨论】:
【参考方案2】:这行得通吗?
times_c = pd.date_range(start="2015-01-01", end="2015-01-10", freq="S")
times_c[(times_c.hour<22) | (times_c.hour>5)]
【讨论】:
仍然包括所有时间,因为 23 大于 5【参考方案3】:让我们试试这个。
times_c[((times_c.hour >= 5) & (times_c.hour < 22)) | ((times_c.hour == 22) &(times_c.minute == 0) & (times_c.second == 0))]
让我们得到大于 5 小时且小于 22 小时的所有时间,然后得到 22 的边缘情况,即 0 分钟和 0 秒。
【讨论】:
以上是关于具有特定时间范围的 Pandas date_range的主要内容,如果未能解决你的问题,请参考以下文章
提取时间戳在特定范围内的 Python Pandas 记录[关闭]