2017-08-08 42 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

相關問題