从预测数据写入excel文件

问题描述 投票:0回答:2

所以我有几个我导入的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
2个回答
2
投票

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

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

1
投票

您可以使用带有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)
© www.soinside.com 2019 - 2024. All rights reserved.