使用 Facebook Prophet 创建循环 SKU 的预测并导出到 CSV

我是 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。但它看起来好像是一个嵌套字典?不确定我是否需要更新我的功能。


这是字典片段的样子

http://img1.mukewang.com/62d6a0ac0001105011760368.jpg

我需要导出它,所以它看起来像这样

http://img1.mukewang.com/62d6a0b8000152b912340457.jpg


红糖糍粑
浏览 101回答 2
2回答

一只斗牛犬

下面的代码应该有助于展平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())

眼眸繁星

我可以看到更改后的完整代码吗?我正在努力解决类似的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python