【问题标题】:Create Forecasts Looping over SKUs and Export to CSV using Facebook Prophet使用 Facebook Prophet 创建循环 SKU 的预测并导出为 CSV
【发布时间】:2020-05-20 14:27:26
【问题描述】:

我是 Python 新手,所以请多多包涵。

我正在尝试将我认为可能是嵌套字典的内容转换为可以导出的 csv。以下是我的代码:

import pandas as pd
import os 
from fbprophet import Prophet

# Read in File
df1 = pd.read_csv('File_Path.csv')

#Create Loop to Forecast Multiple SKUs
def get_prediction(df):
prediction = {}
df1 = df.rename(columns={'Date': 'ds','qty_ordered': 'y', 'item_no': 'item'})
list_items = df1.item.unique()

for item in list_items:
    item_df = df1.loc[df1['item'] == item]
    # set the uncertainty interval to 95% (the Prophet default is 80%)
    my_model = Prophet(yearly_seasonality= True, seasonality_prior_scale=1.0)
    my_model.fit(item_df)
    future_dates = my_model.make_future_dataframe(periods=12, freq='M')
    forecast = my_model.predict(future_dates)
    prediction[item] = forecast
return prediction

# Save predictions to dictionary
df2 = get_prediction(df1)

# Convert dictionary
df3 = pd.DataFrame.from_dict(df3, index='columns)

所以代码的最后一部分是我苦苦挣扎的地方。我需要将 df2 字典转换为数据框 (df3),以便将其导出为 csv。但它看起来好像是一个嵌套字典?不确定我是否需要更新我的功能。

这就是字典的 sn-p 的样子

我需要将其导出,使其看起来像这样

任何帮助将不胜感激!

【问题讨论】:

标签: python pandas loops facebook-prophet


【解决方案1】:

以下代码应该有助于扁平化 df2(如果我理解正确的话,是数据帧字典)。

def flatten(dict_of_df):
    # insert column 'item'
    for key, value in dict_of_df.items():
        value['item'] = key

    # return vertically concatenated dataframe with all the items
    return pd.concat(dict_of_df.values())

【讨论】:

    【解决方案2】:

    @TIM @Drew,我可以看到更改后的完整代码吗?我正在努力解决类似的问题。

    丹尼尔

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多