python - 按日期计算的棘手 groupby/移动平均值
问题描述
我无法在不使事情复杂化的情况下说明我的数据形式问题。所以请耐心等待,因为我想从以下屏幕截图开始仅用于解释问题(也就是数据不是这种形式):
我想在所有垃圾箱中用一个 > 0 的数字标识过去 14 天(也就是总行的值大于 0)。这将包括除第 5 天和第 12 天(以红色突出显示)之外的所有天。然后,我想对这 14 天的 bin 进行水平求和(即按 bin 计算所有天数,预计 5 天和 12 天的总和),目标是最终按 bin 数计算 14 天的平均值。
请注意,上面的示例适用于一个“车道”,其中我的数据 > 10,000。该示例也仅说明今天是第 16 天。但我想将此逻辑应用于数据集中的每一天。即在第 20 天(以及任何其他日期),它将查看过去 14 天的所有 bin 的值,然后使用该数据范围在 Bin 中聚合。这是数据外观的屏幕截图示例:
一个使用结构化数据的简单示例,只有 3 个 Bins、1 个 Lane 和 3 个数据点/日期回顾:
Lane Date Bin KG
AMS-ORD 2018-08-26 3 10
AMS-ORD 2018-08-29 1 25
AMS-ORD 2018-08-30 2 30
AMS-ORD 2018-09-03 2 20
AMS-ORD 2018-09-04 1 40
注意这里的 KG 是一个总和。同样这是一天(也就是今天),但我希望我的数据集中的每个日期都遵循相同的逻辑。输出如下所示:
Lane Date Bin KG Average
AMS-ORD 2018-09-04 1 40 13.33
AMS-ORD 2018-09-04 2 50 16.67
AMS-ORD 2018-09-04 3 0 -
我弄乱了 .rolling(14).mean()、.tail() 和其他一些。我遇到的问题是为正确的 Bin 聚合指定正确的日期范围。
解决方案
推荐阅读
- php - add_action 没有在另一个函数中被调用
- android - 如何从无法访问 lifeCycleOwner 的存储库中获取 LiveData 的价值以进行观察?
- javascript - 等待承诺链有什么问题?
- java - 人们是否不正确地使用了 Streams/Collectors 的 collectAndThen 方法?
- machine-learning - 计算训练中迭代的时期数?
- java - 获取包 org.assertj.core.api 不存在,即使我在使用 JDK 1.8 时在我的 pom 中指定版本 3.6.2
- airflow - 导入缺失的模块
- java - 请求处理后 Spring Boot 应用程序的清理方法
- python - 如何将ffmpeg的-progress选项输出重定向到stderr?
- javascript - Flask WTForm 作为对 AJAX 调用的响应