2017-08-08 15 views
1

私は、1日に特定の時刻に発生するデータのみを選択するDataFramesを用意しています。言って、午前9時から午後5時。しかし、データは9の前に開始し、仕上げは5特定の時間範囲のタイムスタンプをDatetimeIndexから取得する

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

関連する問題