Предположим, у меня есть следующий DataFrame:
import numpy as np
import pandas as pd
import datetime
index = pd.date_range(start=pd.Timestamp("2020/01/01 08:00"),
end=pd.Timestamp("2020/04/01 17:00"), freq='5T')
data = {'A': np.random.rand(len(index)),
'B': np.random.rand(len(index))}
df = pd.DataFrame(data, index=index)
Легко получить доступ каждые 8 утра, скажем, с помощью следующей команды:
eight_am = df.loc[datetime.time(8,0)]
Предположим, теперь я wi sh для доступа каждые 8 утра и каждые 9 утра. Один из способов сделать это - использовать две маски:
mask1 = (df.index.time == datetime.time(8,0))
mask2 = (df.index.time == datetime.time(9,0))
eight_or_nine = df.loc[mask1 | mask2]
Однако моя проблема связана с желанием получить доступ к разному времени дня. Скажем, я sh, чтобы указать это время в списке, скажем
times_to_access = [datetime.time(hr, mins) for hr, mins in zip([8,9,13,17],[0,15,35,0])]
Довольно уродливо создавать переменную маски для каждого раза. Есть ли хороший способ сделать это программно в al oop, или, возможно, есть способ получить доступ к нескольким datetime.time
, которые я не вижу?