【发布时间】:2021-11-04 18:27:23
【问题描述】:
我有一个 Pandas DataFrame,它每隔 2 分钟进行一次连续测量,我已过滤为仅包含某些值。此过程在 DataFrame 中创建具有 2 分钟测量间隔的子组。我想汇总每个子组,以便获得每个子组的平均值,并通过相应组的最后一个日期时间索引来索引平均值。例如:
原始数据帧
2020-06-09 08:44:00 1
2020-06-09 08:46:00 2
2020-06-09 08:48:00 3
2020-06-09 08:50:00 4
2020-06-09 09:06:00 10
2020-06-09 09:08:00 12
2020-06-09 09:10:00 14
2020-06-09 10:14:00 20
2020-06-09 10:16:00 10
2020-06-09 10:18:00 5
2020-06-09 10:20:00 2
新数据框
2020-06-09 08:50:00 2.5
2020-06-09 09:10:00 12
2020-06-09 10:20:00 9.25
在原始 DataFrame 中,有三个子组,其中索引之间的间隔保持在 2 分钟不变。新的 DataFrame 将只有最后一个具有平均值(或任何聚合)值的索引。
过去,我创建了一个单独的列,其中包含日期时间索引之间的时间差,并通过一些不必要的复杂循环,查找大于首选值的时间差,并聚合以前的测量值并将它们添加到单独的数据帧中随着我循环而增长。我知道这个过程非常低效,所以我一直在寻找一种更快、更优雅的方法。
【问题讨论】:
-
这是我选择的示例时间的不幸结果。数据可能跨越一个小时,组可能会在同一小时内出现。
标签: python pandas dataframe datetime grouping