如何通过选择特定时间间隔内的时间索引pandas DataFrame?

时间:2015-07-27 09:32:38

标签: python pandas datetime dataframe indexing

我有一个与以下类似布局的DataFrame:

In [24]: example_df
Out[24]:
                      Price
DateTime
2012-09-11 19:44:00   99.622
2012-09-11 19:45:00   99.312
2012-09-11 19:46:00   99.211
2012-09-11 19:47:00   99.757
2012-09-11 19:48:00   99.312
2012-09-11 19:49:00   99.157
2012-09-11 19:50:00   99.751
...

DataFrame有一个日期时间索引。

这个DataFrame跨越了多年的分钟,我如何将数据切片仅包含时间序列中每天的特定时间段?对于DataFrame中的每一天,请说12:00-13:00?

1 个答案:

答案 0 :(得分:2)

您可以使用indexer_between_time()捕获位于给定时间间隔内的索引,然后使用iloc来切割DataFrame。例如:

>>> df.iloc[df.index.indexer_between_time('19:45:00', '19:49:00')]
                      Price
2012-09-11 19:45:00  99.312
2012-09-11 19:46:00  99.211
2012-09-11 19:47:00  99.757
2012-09-11 19:48:00  99.312
2012-09-11 19:49:00  99.157

对于您每天在12:00至13:00之间输入的特定要求,您可以使用以下方式获取行:

df.iloc[df.index.indexer_between_time('12:00:00', '13:00:00')]