我很难解决dataframe或者groupby中的回看或翻转问题。
下面是我的 Dataframe 的一个简单示例:
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。
示例数据框架非常简单,但实际数据框架要复杂得多,也要大得多。希望有人能在这方面有所启发,提前感谢!
4条答案
按热度按时间bxjv4tth1#
假设一开始我们有一个这样的 Dataframe
vawmfj5a2#
我也想使用groupby滚动,这就是为什么我登陆这个页面,但我相信我有一个比前面的建议更好的解决方案。
您可以执行以下操作:
.stack()
不是必需,但它会将数据透视表转换回常规dfw1jd8yoj3#
你可以这样做:
正如@cphlewis在评论中提到的,我的代码不会给出你想要的结果,我检查了不同的方法,到目前为止我发现的是这样的(尽管不确定性能):
yx2lnoni4#