如何通过选择特定时间间隔内的时间来索引 pandas DataFrames?
Posted
技术标签:
【中文标题】如何通过选择特定时间间隔内的时间来索引 pandas DataFrames?【英文标题】:How to index pandas DataFrames by selecting times in a particular interval? 【发布时间】:2015-10-17 10:20:00 【问题描述】:我有一个类似于以下布局的 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】:您可以使用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')]
【讨论】:
这很好用,谢谢,快速提问 - df.index.indexer_between_time('12:00:00', '13:00:00') 给出了一个索引数组 - pandas iloc 如何然后解析这个列表?一次只有两个? 很高兴它有帮助 -iloc
只是遍历整数数组并从 DataFrame 中选择每个相应的行(如果我误解了你的问题,请告诉我)。以上是关于如何通过选择特定时间间隔内的时间来索引 pandas DataFrames?的主要内容,如果未能解决你的问题,请参考以下文章