Groupby操作,其中频率与计算窗口不同

2024-09-27 00:14:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含两列的数据框:cat、time和value。我想为每一行计算前一行的平均值,比如说,那只猫60分钟的平均值。但不完全是这样:我想计算平均值,比如说,每10分钟

例如,假设我正在观察一个观测值(cat,time,value)=(10,10:34,x)。对于这一观察,我想检索cat=10,时间在9:30和10:30之间的值的平均值。同样,如果时间是11:59,我会查看10:50和11:50之间的值

到目前为止,我一直在尝试:

  1. 一个groupby计算每10分钟的平均值和计数。在合并回原始数据帧时,移动时间槽使其超过数据
  2. 第二组在最后60分钟内使用rolling weighted average
  3. 使用10分钟存储箱和cat作为键合并到原始数据帧
  4. 错误:第一个groupby不包含所有的bin,所以当我合并回原始df时,很多bin中都没有数据
  5. 解决方案:在步骤1中人为创建所有组合(cat、time_bin)。问题:计算和内存太多

Tags: 数据原始数据bintimevalue时间cat平均值

热门问题