具有时间序列的DataFrame:在6小时窗口中选择行



假设我有以下Panda DataFramedf:

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:002019-09-30 23:59:59-05:00

在这个DataFrame中,我只想选择时间在窗口00:00:00-05:0005:59:59-05:00(6小时窗口(中的行。也就是说,只使用此窗口中出现的df行创建一个新的DataFrame。

我每天都能做到,例如:

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的日期。

最新更新