如何使用python组合销售预测、计划交付和当前库存以预测未来库存
我有三个数据来源: 销售预测-这是产品的未来预测销售额: 产品 预测数量 每月预测 产品A 5. 2021-02-28 产品B 6. 2021-02-28 产品C 2. 2021-02-28 产品A 5. 2021-03-31 产品B 6. 2021-03-31 产品C 2. 2021-03-31 产品A 5. 2021-04-30 产品B 6. 2021-04-30 产品C 2. 2021-04-30如何使用python组合销售预测、计划交付和当前库存以预测未来库存,python,python-3.x,pandas,dataframe,forecasting,Python,Python 3.x,Pandas,Dataframe,Forecasting,我有三个数据来源: 销售预测-这是产品的未来预测销售额: 产品 预测数量 每月预测 产品A 5. 2021-02-28 产品B 6. 2021-02-28 产品C 2. 2021-02-28 产品A 5. 2021-03-31 产品B 6. 2021-03-31 产品C 2. 2021-03-31 产品A 5. 2021-04-30 产品B 6. 2021-04-30 产品C 2. 2021-04-30 使用concat垂直组合三个数据帧。然后,fillna与其他列一起填充库存列,并melt数据
使用
concat
垂直组合三个数据帧。然后,fillna
与其他列一起填充库存列,并melt
数据帧。从那里,您可以使用cumsum
:
df = (pd.concat([df1.assign(Forecast_Quantity=df1['Forecast_Quantity'] * -1)
.rename({'Forecast_Month' : 'Inventory_Month',
'Forecast_Quantity' : 'Inventory_Quantity'}, axis=1),
df2.rename({'Delivery_Month' : 'Inventory_Month',
'Delivery_Quantity' : 'Inventory_Quantity'}, axis=1),
df3]).sort_values(['Product', 'Inventory_Month']))
df['Inventory_Quantity'] = df.groupby('Product')['Inventory_Quantity'].cumsum()
df = (df.groupby(['Product', 'Inventory_Month'], as_index=False).last()
.sort_values('Inventory_Month'))
df
Out[1]:
Product Inventory_Month Inventory_Quantity
0 Product A 2021-01-31 20.0
4 Product B 2021-01-31 16.0
8 Product C 2021-01-31 21.0
1 Product A 2021-02-28 17.0
5 Product B 2021-02-28 14.0
9 Product C 2021-02-28 24.0
2 Product A 2021-03-31 20.0
6 Product B 2021-03-31 10.0
10 Product C 2021-03-31 26.0
3 Product A 2021-04-30 17.0
7 Product B 2021-04-30 10.0
11 Product C 2021-04-30 27.0
B和C对我来说不算什么。你能再核对一下数学吗?或者你能为AB或C解释一下吗?@DavidErickson很抱歉B错了,但其他2个应该是正确的。因此,C从21开始-2预测+5交付=24 2021年2月的总库存Hi@DavidErickson感谢您的回复,但这只适用于第一个月。它应该采用上个月的新期末库存,您的解决方案总是采用df3中的第一个库存。在扣除预测和交货之前,我如何让上个月的库存计算出来?@Calum请尝试我的最新答案。今后,请根据输入(而不仅仅是部分行)包含完整的预期输出。非常感谢。完美的解决方案按要求运行,很抱歉我的问题格式不正确。你也向我介绍了一些新的熊猫概念,我将去研究,以便理解你的方法。标记为已解决。