假设我有以下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:00
到2019-09-30 23:59:59-05:00
。
在这个DataFrame中,我只想选择时间在窗口00:00:00-05:00
到05: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
的日期。