【问题标题】:Writing to excel file from forecasted data从预测数据写入 excel 文件
【发布时间】:2019-05-24 23:39:15
【问题描述】:

所以我有几个要导入的 csv 文件,然后我使用 FB Prophet 来预测未来几个月的数据。我希望所有预测都转到不同的 csv 或全部在同一个 csv 上。目前它只是将文件名的最后一个 csv 写入 csv 而没有做其他的。

filenames=['example1.csv','example2.csv','example3.csv']

for f in filenames:
    df=pd.read_csv(f)
    df.columns=['ds','y']
    df['ds']=pd.to_datetime(df['ds'])
    m=Prophet(seasonality_mode='multiplicative')
    m.fit(df)

    future=m.make_future_dataframe(periods=6,freq='M')
    forecast=m.predict(future)
    forecast[['ds','yhat','yhat_lower','yhat_upper']].tail()
    fig1=m.plot(forecast)
    fig2=m.plot_components(forecast)

    forecast.to_csv(f)

我希望所有预测都在一个 csv 上,或者为每个循环的文件名创建一个新的 csv。

【问题讨论】:

    标签: python pandas xlsxwriter facebook-prophet


    【解决方案1】:

    在 pandas 中,.to_csv() 默认处于写入模式,但可以选择更改它。在您的示例中,您在编写 to_csv() 时正在遍历文件名,因此按照当前编写的方式,您将使用代码的结果覆盖当前文件。如果您想将这些数据帧写入一个新文件,并将每个 df 附加到底部:

    forecast.to_csv('final_data.csv', mode='a')
    

    【讨论】:

    【解决方案2】:

    您可以使用带有 mode="a" 的 .to_csv() 来完成您的任务,或者您可以在附加模式下打开文件并使用 to_csv() 对其进行写入。

    在追加模式下使用 .to_csv()

    df.to_csv("file_name.csv", mode="a")
    

    以追加模式打开文件并使用 to_csv 写入。

    with open("filename.csv", 'a') as file:
        df.to_csv(file, header=False)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 2012-10-03
      相关资源
      最近更新 更多