在dataframe或groupby中,我很难解决回溯或滚动问题。
下面是我拥有的数据帧的一个简单示例:
fruit amount
20140101 apple 3
20140102 apple 5
20140102 orange 10
20140104 banana 2
20140104 apple 10
20140104 orange 4
20140105 orange 6
20140105 grape 1
…
20141231 apple 3
20141231 grape 2
我需要计算前3天每天每种水果的“数量”平均值,并创建以下数据框架:
fruit average_in_last 3 days
20140104 apple 4
20140104 orange 10
...
例如在20140104上,前3天是20140101、20140102、20140103(注意数据帧中的日期不是连续的,20140103不存在),苹果的平均量为(3+5)/2=4,橙色为10/1=10,其余为0。
示例数据帧非常简单,但实际数据帧要复杂得多。希望有人能对此有所了解,提前谢谢!
假设我们一开始就有这样的数据帧
你可以这样做:
更新
好吧,正如@cphlewis在评论中提到的,我的代码不会给出您想要的结果。我已经检查了不同的方法,到目前为止我发现的方法是这样的(但不确定性能):
我还想使用groupby滚动,这就是我登陆此页面的原因,但我相信我有一个比以前的建议更好的解决方法。
您可以执行以下操作:
不需要
.stack()
,但将把透视表转换回常规df相关问题 更多 >
编程相关推荐