根据截图示例enter image description here,给定总预测值等,我希望根据逻辑计算净值:因此,首先扣除当前周的值(W0),然后返回3周,然后向前3周,当达到正值时,此计算将停止。
我将示例数据添加到python数据框中:
import pandas as pd
import numpy as np
data = {
"Material": ["ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC"],
"Week": [
"2019-W50",
"2019-W49",
"2019-W48",
"2019-W47",
"2019-W51",
"2019-W52",
"2020-W1",
],
"Gross Forecast": [50, 40, 40, 40, 50, 50, 50],
"SO Qty": [-200, 0, 0, 0, 0, 0, 0],
}
df = pd.DataFrame(data)
print(df)想要的结果是如下所示的数据帧:
data = {
"Material": ["ABC"],
"Week": ["2019-W51"],
"Net": [20]
}发布于 2019-12-10 10:18:23
df = pd.DataFrame(data).sort_values(by=['Week'])
df['diff'] = df['Gross Forecast'] + df['SO Qty']
df['calc_steps1'] = df['diff'] + df['diff'].shift(1)
df['calc_steps2'] = df['calc_steps1'] + df['diff'].shift(2)
df['calc_steps3'] = df['calc_steps2'] + df['diff'].shift(3)
df['net'] = df['Gross Forecast'] + df['calc_steps3'].shift(1)https://stackoverflow.com/questions/59259024
复制相似问题