按切片方式按属性的属性获取数据框子集

时间:2013-11-06 07:51:47

标签: python datetime pandas

我的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的情况下做同样的事情?

1 个答案:

答案 0 :(得分:2)

首先将列转换为DatetimeIndex,然后您可以调用许多处理日期时间的方法,例如:

hour = pd.DatetimeIndex(df["Date"]).hour
df[(hour >= 12) & (hour <= 16)]