提问者:小点点

使用日期时间索引检索熊猫数据帧的特定时间间隔


我有一个熊猫数据帧与日期时间索引。假设datetime索引从时间t1开始,那么在熊猫中是否有办法从时间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

目前,我通过创建自己的时间间隔和使用间隔时间来解决1小时长的时间间隔的问题,但我觉得应该有一种更巧妙的方法来使用pandas datetime索引。

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]

共1个答案

匿名用户

“我有一个带有日期时间索引的pandas数据帧。假设日期时间索引从时间t1开始,pandas中是否有方法从时间t1开始每隔15分钟返回数据帧的行?”

这最好通过使用重采样来解决:如果您想要获得给定时间块的第一个元素,请使用

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

但是,如果您希望获得给定时间段中的最后一个元素,则应该使用

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

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

是的,这也可以通过重新采样来完成:

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