python - 具有时间序列的 DataFrame:在 6 小时窗口中选择行
问题描述
假设我有以下 pandas DataFrame df
:
id state
Date
2019-09-01 00:00:00-05:00 SV107 OCCUPIED
2019-09-01 00:00:00-05:00 HO575 VACANT
2019-09-01 00:00:03-05:00 WV159 VACANT
2019-09-01 00:00:03-05:00 CC1268 OCCUPIED
2019-09-01 00:00:04-05:00 CB3915 OCCUPIED
...
实际的 DataFrame 有数百万行,日期从2019-09-01 00:00:00-05:00
到2019-09-30 23:59:59-05:00
。
在此 DataFrame 中,我只想选择其小时在窗口00:00:00-05:00
中的行05:59:59-05:00
(6 小时窗口)。也就是说,创建一个新的 DataFrame,其中仅df
显示在此窗口中的行。
我每天都能做到,例如:
df.loc['2019-09-01 00:00:00-05:00':'2019-09-01 05:59:59-05:00']
但我想一次在每个月的每一天都这样做。
解决方案
根据:https ://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DatetimeIndex.hour.html
你可以这样做:
new_df = df[df.index.hour < 6]
如果您的索引是 ,这将起作用DateTimeIndex
,因此请确保您的Date
列是带有 的日期pd.to_datetime
。
推荐阅读
- tensorflow - TPU 本地文件系统不存在?
- java - 从 bash 脚本中逐个执行 Java Cucumber 功能文件,并在第一个完成后继续执行功能文件
- c# - Dynamics 365 Web API:没有 OData-EntityId 的 GetAsync 记录
- c# - 在 .NET core 2.0 中引用 .NET Framework 4 dll
- google-chrome-extension - Chrome 扩展 - 使用从后台发送的消息中的数据在弹出窗口中持久注入 HTML
- ios - Swift 框架 - 未找到 Objective-C 标头
- php - 如何将变量或记录转换为数组
- swift - Swift 4.2 字典无法按键找到值
- java - 如何从按模式拆分的字符串中获取最后一个标记
- css - 单击 li 元素后删除 :hover 类