首页 > 解决方案 > 使用日期时间索引检索熊猫数据帧的特定时间间隔

问题描述

我有一个带有日期时间索引的熊猫数据框。假设 datetime 索引从时间 t1 开始,pandas 有没有办法从时间 t1 开始每隔 15 分钟的时间间隔返回数据帧的行?

此外,是否可以对这 15 分钟间隔之间的所有条目进行平均并返回这些条目?

Datetime            Value
2018-10-08 00:00:01 100.70
2018-10-08 00:00:20 98.70
2018-10-08 00:00:34 112.60
2018-10-08 00:00:00 38.30
2018-10-08 00:01:02 60.30
2018-10-08 00:01:24 115.85
2018-10-08 00:02:00 76.10

目前,我通过制作自己的 time_intervals 并使用 between_time 来解决 1 小时长的间隔,但我觉得应该有一个更漂亮的方法来使用 pandas 日期时间索引来做到这一点。

time_intervals=[("{}:00:00".format(i),"{}:00:00".format(i+1)) for i in range(23)]


means_list=[df.between_time(time_interval[0],time_interval[1]).mean()[0] for time_interval in time_intervals]

标签: pythonpandasdatetimetime-series

解决方案


“我有一个带有日期时间索引的熊猫数据框。假设日期时间索引从时间 t1 开始,熊猫有没有办法从时间 t1 开始每隔 15 分钟的时间间隔返回数据框的行?”

这最好通过使用resample来解决:如果要获取给定时间块的第一个元素,请使用

df.resample('15m').first()

但是,如果您想获取给定时间块中的最后一个元素,则应该使用

df.resample('15m').last()

“此外,是否可以对这 15 分钟间隔之间的所有条目进行平均并返回这些条目?”

是的,这也可以通过以下方式完成resample

df.resample('15m').mean()

推荐阅读