如何使用python组合销售预测、计划交付和当前库存以预测未来库存

如何使用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数据

我有三个数据来源:

销售预测-这是产品的未来预测销售额:

产品 预测数量 每月预测 产品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
数据帧。从那里,您可以使用
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请尝试我的最新答案。今后,请根据输入(而不仅仅是部分行)包含完整的预期输出。非常感谢。完美的解决方案按要求运行,很抱歉我的问题格式不正确。你也向我介绍了一些新的熊猫概念,我将去研究,以便理解你的方法。标记为已解决。