我想在groupby的同时计算尾随或移动平均值。在下面的示例中,我已经演示了一个5天的移动平均线。
我的数据看起来像这样:
ID Date KG Volume
1 8/10/2018 1,000 10
1 8/11/2018 500 6
1 8/12/2018 750 2
1 8/13/2018 500 6
1 8/13/2018 500 6
1 8/14/2018 1,000 4
2 8/1/2018 1304 8
2 8/2/2018 626 1
2 8/3/2018 955 3
2 8/8/2018 445 4
2 8/10/2018 1356 11
2 8/13/2018 524 7
2 8/14/2018 331 5
我希望能按照ID和日期列进行分组,然后计算KG/Volume列的最近5天平均值(从今天的日期开始计算,即8/10-8/14)。我需要在ID和日期上进行分组的原因是像ID 1这样的情况,其中日期8/13/18出现了两次。在这个例子中,我希望ID 1在8/13/18只有一个1,000 KG的条目用于平均计算(而不是两个500的条目)。
预期输出应该类似于:
ID Avg_KG Avg_Vol
1 850 7
2 442.2 4.6
请注意ID 2缺少5天中的2天,这对于平均值计算非常重要。在ID 2中缺失的两天,应该作为平均值计算的0因素考虑进去。这就是为什么ID 2的平均值为442.2而不是737。
我已经尝试使用"rolling(5).mean()",但是将其与"groupby"语句结合使用时结果不正确。