Запись в файл Excel из прогнозных данных - PullRequest
0 голосов
/ 26 декабря 2018

Итак, у меня есть несколько CSV-файлов, в которые я импортирую, и затем я использую FB Prophet, чтобы дать мне прогноз на ближайшие месяцы.Я хотел бы, чтобы все прогнозы были либо в другой 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перебрал.

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Вы можете использовать .to_csv () с mode = "a", чтобы выполнить вашу задачу, или вы можете открыть файл в режиме добавления и записать в него, используя 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)
0 голосов
/ 26 декабря 2018

в пандах, .to_csv() по умолчанию находится в режиме записи, но имеет возможность изменить его.В вашем примере вы перебираете имена файлов при написании to_csv(), поэтому, как это написано в настоящее время, вы перезапишете ваши текущие файлы с результатами из вашего кода.Если вы хотите записать эти кадры данных в новый файл, с каждым df, добавленным внизу:

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