从DatetimeIndex中选择特定时间范围内的时间戳

时间:2017-08-08 22:16:17

标签: python pandas dataframe datetimeindex

我有一堆DataFrames,我只想选择在白天某些时间发生的数据。比如,上午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"]

反正我能做到吗?

1 个答案:

答案 0 :(得分:1)

几乎!这几乎就是这么简单。只需使用between_time

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

要仅获取列A,请使用.loc[:, 'A']

附加上述内容