我有一个数据框“ c”,其属性名为“ UNITID”。我划分了数据帧相对于不同的“单元ID的和运行的每一个神经网络模型”的UnitID的。请参阅以下编码相同。我已标记它们作为C1,C2,... CN使用枚举函数并存储在“c_new”
c_count = c['UNITID'].nunique()
c_new={"c{0}".format(i+1):j[1]for i,j in enumerate(c.groupby('UNITID'))}
for i in range(c_count):
i = i+1
c_data = 'c'+str(i)
print("==============================-------{}-------===========================".format(i))
c_new[c_data] = c_new[c_data].set_index('DATETIME')
values = c_new[c_data].values
# Encoding categorical data
..
#Convert Categories in Text into numbers using Label encoder/ OneHotEncoding
..
# split into train and test sets
..
# reshape input to be 3D [samples, timesteps, features]
..
#Scale and Normalize inputs
..
# Deep Neural Network model
..
# fit network
..
# make a prediction
..
#performance metrics: MAE, MSE, RMSE, Rsq
...
每次为每个UNITID运行模型时,都会生成新的预测结果,但是我当前的代码只会将结果覆盖到具有相同文件名的同一文件中(这很有意义,因为这就是df.to_csv的方式)作品)。
我想要的是每次生成新结果时都将结果写入一个单独的文件中。对于每一个C {I},其中i = 1,2 ... N。 ;每个预测输出文件应该c_out_ {I},像下面。
i/p file --> o/p
c1 --> c_out_1
c2 --> c_out_2
c3 --> c_out_3
.
.
cn --> c_out_n
我该如何实现?
#Write predictions to file
test_y = pd.DataFrame(test_y) #Actual values
yhat = pd.DataFrame(yhat) #predicted values using the model
test_y.rename(columns= {0: 'Actual value'}, inplace = True)
yhat.rename(columns = {0: 'Pred value'}, inplace = True)
new = pd.concat([test_y, yhat], axis = 1)
#print(('ct'+ str(i)))
new.to_csv('c_out_{i}.csv') #I want to write a different output csv file for each UNITD's prediction;
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
在您的for循环中添加:
new.to_csv('c_out_' + str(i) + '.csv')