Pandas按特定时间范围生成日期序列

4

我正在尝试使用 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]
3个回答

8

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。 - user3142067

1

让我们试试这个。

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:00:00。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接