整体背景:
我有一个数据框,它包含了从早上5点到晚上8点连续几天每5分钟的观察结果。我需要过滤每天早上9点到晚上5点的所有观察结果。你知道吗
输入数据框如下所示:
Date Time
2019-09-20 05:00:00,..,..
2019-09-20 05:05:00,..,..
...
2019-09-20 09:00:00,..,..
...
2019-09-20 17:00:00,..,..
2019-09-20 17:05:00,..,..
...
2019-09-20 20:00:00,..,..
2019-09-21 05:00:00,..,..
2019-09-21 05:05:00,..,..
...
2019-09-21 09:00:00,..,..
...
2019-09-21 17:00:00,..,..
2019-09-21 17:05:00,..,..
...
2019-09-21 20:00:00,..,..
输出数据帧应如下所示:
2019-09-20 09:00:00,..,..
...
2019-09-20 17:00:00,..,..
2019-09-21 09:00:00,..,..
...
2019-09-21 17:00:00,..,..
目前采取的步骤
为了提取上午9点到下午5点之间的行,我通过 使用矢量化数据操作提取小时、分钟和秒 所以输入数据帧将具有类似于
Date Time, Number of seconds since midnight
2019-09-20 05:00:00,xxxx,..,..
2019-09-20 05:05:00,yyyy,..,..
...
2019-09-21,05:00:00,xxxx,..,..
2019-09-21, 05:05:00,yyyy,..,..
请注意,对于每天相同的时间,秒数将保持不变 现在我希望能在早上9点到下午5点提取所有的行
df[(df['Number of seconds since midnight'] > (nseconds for 9 am from midnight)) & ((df['Number of seconds since midnight'] < (nseconds for 5 pm from midnight))
但是我只从最后一天上午9点到下午5点之间得到了行。 在我看来,这似乎是忽略了所有重复行与ehs相同的计算。你知道吗
有人能建议一个可能的解决方案,不迭代每一行,并使用矢量化的操作,因为数据库非常大
使用日期时间.hour在数据的dateTime对象中,可以根据大于9、小于或等于5或(17)的数据过滤数据,然后将其添加到生成的数据帧或数组中
下面的代码可能会对您有所帮助
我已经从下面创建了我的示例数据,它也可以在多个日期工作
欢迎任何更正。你知道吗
代码
结果
检索数据帧或将其分配给满足上述条件的另一个数据帧
相关问题 更多 >
编程相关推荐