2017-08-08 43 views
1

我有一堆数据帧,我只想选择一天中某些时间发生的数据。说,上午9点至下午5点。但数据9日之前启动,并完成后5从日期时间索引中选择一定时间范围内的时间戳

import numpy as np 
import pandas as pd 

start = pd.Timestamp("20170807 08:30-0400") 
end = pd.Timestamp("20170807 17:30-0400") 
index = pd.DatetimeIndex(start=start, end=end, freq="10min") 
data = np.random.randint(0, 100, size=(55, 3)) 
columns = ["A", "B", "C"] 
df = pd.DataFrame(data, index=index, columns=columns) 

我能得到我想要做类似的数据:

df[(df.index >= "20170807 09:00-0400") & (df.index <= "20170807 17:00-0400")]["A"] 

但我真的很喜欢的是一个优雅的方法不依赖于日期。

I.e.我很愿意能够做到:

df[(df.index >= "09:00-0400") & (df.index <= "17:00-0400")]["A"] 

有反正我可以这样做吗?

回答

1

差不多!这几乎是那么简单。只需使用between_time

df.between_time('08:00', '17:00') 

要获得唯一的列A,追加以上.loc[:, 'A']

+0

由于互联网的陌生人。我觉得它必须是一件事情。 – Batman

相关问题