我想计算一个拖尾或移动平均数,同时进行分组。在下面的例子中,我演示了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/体积列后面5天的平均值(从今天的日期算起,是8/10-8/14)。我需要按ID和Date分组的原因是像ID 1这样的情况,其中日期8/13/18出现了两次。在这个例子中,我希望在8/13/18的ID 1中有一个1000 KG的条目用于平均计算(而不是两个条目500)。在
预期产出如下:
^{pr2}$另外,请注意,ID 2缺少平均计算所需的5天中的2天。在进行平均计算时,应将ID 2缺失的两天计算为0。这就是为什么体重平均值是442.2,而不是737。在
我尝试过使用.rolling(5).mean(),但在将其与groupby语句结合时,得到的结果不正确。在
首先,一些设置:
现在groupby}并求和重复天数:
^{pr2}$Date
和{接下来,要重新取样以说明“缺失”天数:
最后,索引过去5天的数据帧,并使用
mean
:相关问题 更多 >
编程相关推荐