我有一堆 DataFrame,我想只选择一天中特定时间出现的数据。比如说,在上午 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"]
但我真正想要的是一种不依赖于日期的优雅方法。
即我希望能够做到:
df[(df.index >= "09:00-0400") & (df.index <= "17:00-0400")]["A"]
无论如何我可以做到这一点吗?