df1 = pd.DataFrame(train_out) df1.to_excel(())
时间: 2024-04-29 13:20:43 浏览: 108
这段代码中,首先使用了 Pandas 库创建了一个 DataFrame 对象 df1,并将 train_out 作为数据传入。接着使用 to_excel() 方法将 df1 对象写入到一个 Excel 文件中,这里的括号中应该填写文件的路径和名称,例如:df1.to_excel('output.xlsx') 表示将 df1 对象写入到名为 output.xlsx 的 Excel 文件中。如果你想要将 DataFrame 写入到已经存在的 Excel 文件中的指定 sheet 中,可以使用如下代码:df1.to_excel('output.xlsx', sheet_name='Sheet1'),其中 sheet_name 表示要写入的 sheet 名称。请注意,这里需要事先安装 openpyxl 库,才能够使用 Pandas 中的 to_excel() 方法。
相关问题
df2 = pd.DataFrame(test_out) df2.to_excel())和df1 = pd.DataFrame(train_out) df1.to_excel(())存入一个excel
你可以通过指定 sheet 名称的方式将两个 DataFrame 写入到同一个 Excel 文件中的不同 sheet 中。具体实现方法如下:
```python
import pandas as pd
# 创建 DataFrame 对象
df1 = pd.DataFrame(train_out)
df2 = pd.DataFrame(test_out)
# 创建 ExcelWriter 对象
writer = pd.ExcelWriter('output.xlsx')
# 将 df1 和 df2 对象写入到不同的 sheet 中
df1.to_excel(writer, sheet_name='train_data')
df2.to_excel(writer, sheet_name='test_data')
# 保存 Excel 文件
writer.save()
```
在上述代码中,我们首先创建了两个 DataFrame 对象 df1 和 df2,然后使用 pd.ExcelWriter() 方法创建了一个 ExcelWriter 对象 writer,并指定了要写入的 Excel 文件名称为 'output.xlsx'。接着,我们使用 to_excel() 方法将 df1 和 df2 对象分别写入到 writer 对象中的两个不同的 sheet 中,分别为 'train_data' 和 'test_data'。最后,我们使用 writer.save() 将写入的内容保存到 Excel 文件中。需要注意的是,这里的括号中不需要填写任何内容,因为我们已经在 pd.ExcelWriter() 方法中指定了要写入的 Excel 文件的名称。
import numpy as np import pandas as pd import matplotlib.pyplot as plt import BPNN from sklearn import metrics from sklearn.metrics import mean_absolute_error from sklearn.metrics import mean_squared_error #导入必要的库 df1=pd.read_excel(r'D:\Users\Desktop\大数据\44.xls',0) df1=df1.iloc[:,:] #进行数据归一化 from sklearn import preprocessing min_max_scaler = preprocessing.MinMaxScaler() df0=min_max_scaler.fit_transform(df1) df = pd.DataFrame(df0, columns=df1.columns) x=df.iloc[:,:4] y=df.iloc[:,-1] #划分训练集测试集 cut=4#取最后cut=30天为测试集 x_train, x_test=x.iloc[4:],x.iloc[:4]#列表的切片操作,X.iloc[0:2400,0:7]即为1-2400行,1-7列 y_train, y_test=y.iloc[4:],y.iloc[:4] x_train, x_test=x_train.values, x_test.values y_train, y_test=y_train.values, y_test.values #神经网络搭建 bp1 = BPNN.BPNNRegression([4, 16, 1]) train_data=[[sx.reshape(4,1),sy.reshape(1,1)] for sx,sy in zip(x_train,y_train)] test_data = [np.reshape(sx,(4,1))for sx in x_test] #神经网络训练 bp1.MSGD(train_data, 1000, len(train_data), 0.2) #神经网络预测 y_predict=bp1.predict(test_data) y_pre = np.array(y_predict) # 列表转数组 y_pre=y_pre.reshape(4,1) y_pre=y_pre[:,0] #画图 #展示在测试集上的表现 draw=pd.concat([pd.DataFrame(y_test),pd.DataFrame(y_pre)],axis=1); draw.iloc[:,0].plot(figsize=(12,6)) draw.iloc[:,1].plot(figsize=(12,6)) plt.legend(('real', 'predict'),loc='upper right',fontsize='15') plt.title("Test Data",fontsize='30') #添加标题 #输出精度指标 print('测试集上的MAE/MSE') print(mean_absolute_error(y_pre, y_test)) print(mean_squared_error(y_pre, y_test) ) mape = np.mean(np.abs((y_pre-y_test)/(y_test)))*100 print('=============mape==============') print(mape,'%') # 画出真实数据和预测数据的对比曲线图 print("R2 = ",metrics.r2_score(y_test, y_pre)) # R2 运行上述程序。在下面这一步中draw=pd.concat([pd.DataFrame(y_test),pd.DataFrame(y_pre)],axis=1);我需要将归一化的数据变成真实值,输出对比图,该怎么修改程序
在将归一化的数据变回真实值的过程中,需要将归一化的因变量(即最后一列)逆转换回来,以得到真实的预测值和真实值。代码如下:
```
# 将预测结果和真实结果逆归一化
y_predict = min_max_scaler.inverse_transform(y_pre.reshape(-1, 1))
y_test = min_max_scaler.inverse_transform(y_test.reshape(-1, 1))
# 画图
draw=pd.concat([pd.DataFrame(y_test), pd.DataFrame(y_predict)], axis=1)
draw.iloc[:,0].plot(figsize=(12,6))
draw.iloc[:,1].plot(figsize=(12,6))
plt.legend(('real', 'predict'), loc='upper right', fontsize='15')
plt.title("Test Data", fontsize='30')
# 输出精度指标
print('测试集上的MAE/MSE')
print(mean_absolute_error(y_predict, y_test))
print(mean_squared_error(y_predict, y_test))
mape = np.mean(np.abs((y_predict-y_test)/(y_test)))*100
print('=============mape==============')
print(mape,'%')
# 输出R2分数
print("R2 = ", metrics.r2_score(y_test, y_predict))
```
在此代码中,我们使用了 MinMaxScaler 对象的 inverse_transform() 方法将归一化的结果转换回原始的数据范围。运行修改后的代码,即可得到真实值与预测值的对比图,以及各种精度指标的输出。
阅读全文