【发布时间】:2021-10-24 03:18:03
【问题描述】:
问题:假设我们向工厂供应机器人。这些机器人中的每一个都被编程为在 3 天后切换到工作模式(例如,如果它在第 1 天到达,则在第 3 天开始工作),然后它们工作 5 天。之后,电池耗尽,它们停止工作。每天供应的机器人数量各不相同。 以下代码是前 15 天的耗材,如下所示:
import pandas as pd
df = pd.DataFrame({
'date': ['01','02', '03', '04', '05','06', \
'07','08','09','10', '11', '12', '13', '14', '15'],
'value': [10,20,20,30,20,10,30,20,10,20,30,40,20,20,20]
})
df.set_index('date',inplace=True)
df
现在让我们像这样估计这些天每天工作的机器人数量(我们向后移动两天,只总结过去 5 天内的数字):
04 10
05 20+10 = 30
06 20+20 = 40
07 30+20 = 50
08 20+30 = 50
09 10+20 = 30
10 30+10 = 40
11 20+30 = 50
12 10+20 = 30
13 20+10 = 30
14 30+20 = 50
15 40+30 = 70
是否可以在 python 中进行建模?我已经试过了 - 不是很接近但很接近。
df_p = (((df.rolling(2)).sum())).shift(5).rolling(1).mean().shift(-3)
附言如果您认为它不够复杂,那么我还需要为我的实际问题包括每个这些数字的最后 7 天平均值。
【问题讨论】:
-
仅供参考,shift 用于“与使用键盘上的右移键和/或左移键有关的问题”。并且不适用于此目的。
-
你好,Corralien。我接受了。这个问题与那个问题非常相关。但是,我不能在这里使用 cumsum()。
标签: python-3.x pandas sum rolling-computation