我的DataFrame有一个datetime类型的列(称为'Date')。我可以通过完整日期获取我的数据帧的子集,如:
df[df['Date'] >= '2013-11-01']
但是,我希望按照某个时间间隔(忽略日期)获取数据帧子集。例如,以下代码不起作用:
df[(df['Date'].time() >= datetime.strptime("12:00:00", "%H:%M:%S").time()) &
(df['Date'].time() <= datetime.strptime("16:00:00", "%H:%M:%S").time())]
因为df['Date'].time()
不适合解决time()
方法。
有没有办法在没有iterrows
的情况下做同样的事情?
答案 0 :(得分:2)
首先将列转换为DatetimeIndex
,然后您可以调用许多处理日期时间的方法,例如:
hour = pd.DatetimeIndex(df["Date"]).hour
df[(hour >= 12) & (hour <= 16)]