我在Pandas中有一个DataFrame,其中包含如下所示的预测销售数据:
| Date | ProductID | Forecasted_Date | Sales |
---|-------|-----------|-----------------|-------|
0 | 1_Jan | 1 | 2_Jan | 10 |
1 | 1_Jan | 2 | 3_Jan | 3 |
2 | 1_Jan | 1 | 2_Jan | 7 |
3 | ... | | | |
4 | 2_Jan | 1 | 3_Jan | 7 |在每个日期,对于每个ProductId,都会提前1到20天预测销售额( Forecasted_date)。
我想创建一个新的日期,MultiIndexed by "Date,ProductID“,并包含以下列:
| IND_Date | IND_ProductID | F1 | F2 | ... | F20 |
|----------|---------------|----|------|-----|-----|
| 1_Jan | 1 | 10 | 3 | | |
| 1_Jan | 2 | 7 | etc. | | |
| ... | | | | | |
| 2_Jan | 1 | 7 | | | |其中,列表示做出预测的天数。(即,对于Date=1_Jan、2_Jan上的F1=Sales )。
在Pandas中构建它的最佳方式是什么?
发布于 2020-09-12 01:01:12
我想通了。
如果df是我的基本数据帧...
假设Date和Forecasted_Date为Datetime格式,
df['difference'] = (df['Forecasted_Date'] - df['Date']) / pd.Timedelta(1,'D'))df['forecast_day'] = 'f_' + df['difference'].astype('int').astype('str')df_forecast = pd.pivot_table(data=df, values="Sales", index=["Date", "Product_ID"], columns="forecast_day", aggfunc="sum")完成了!
https://stackoverflow.com/questions/63850929
复制相似问题