我想在进行分组时计算尾随或移动平均线。在下面的示例中,我说明了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和Date列进行分组,然后计算KG / Volume列的连续5天平均值(从今天的日期开始,这将是8 / 10-8 / 14)。我需要按ID和日期进行分组的原因是ID 1之类的情况,其中日期8/13/18出现了两次。在此示例中,我希望18/13/18上的ID 1具有一个1,000 KG的条目用于平均计算(而不是两个500的条目)。
预期的输出将类似于:
ID Avg_KG Avg_Vol
1 850 7
2 442.2 4.6
另外请注意,ID 2缺少平均计算所需的5天中的2天。对于ID 2,缺少的两天应该作为平均计算的0。这就是为什么KG平均ID为442.2而不是737的原因。
我尝试使用.rolling(5).mean(),但在将其与groupby语句结合使用时却得到了不正确的结果。
相关分类