在上述代码中加上将一个文件夹中所有的csv文件的预测结果放进一个Excel中
时间: 2024-03-10 18:49:48 浏览: 89
Python导出数据到Excel可读取的CSV文件的方法
好的,您可以使用Python的os和glob库来遍历文件夹中的所有CSV文件,并将它们的预测结果存储到一个Excel文件中。您可以按照以下步骤进行操作:
1. 首先,定义一个函数来读取CSV文件并返回预测结果,如下所示:
```
def read_csv(file_path):
# 读取CSV文件
data = pd.read_csv(file_path, header=None)
input_data = torch.tensor(data.values, dtype=torch.float32)
num = input_data.shape[0] - 30
input_data = torch.reshape(input_data[:num], (-1, 30, 1))
# 进行预测
with torch.no_grad():
output = model(input_data.to(device))
pred = output.cpu().numpy()
return pred
```
其中,file_path是CSV文件的路径,model是您的模型对象,device是您的设备对象。
2. 接下来,使用glob库遍历文件夹中的所有CSV文件,调用read_csv函数获取预测结果,并将它们存储到一个字典中,如下所示:
```
import os
import glob
folder_path = '/path/to/folder' # 文件夹路径
result_dict = {'File Name': [], 'Predicted Value': []} # 存储预测结果的字典
for file_path in glob.glob(os.path.join(folder_path, '*.csv')):
file_name = os.path.basename(file_path)
pred = read_csv(file_path)
result_dict['File Name'].append(file_name)
result_dict['Predicted Value'].append(pred.flatten())
```
3. 最后,将字典转换为DataFrame对象并将其输出到Excel文件中,如下所示:
```
result_df = pd.DataFrame(result_dict)
file_name = 'output.xlsx' # 输出的Excel文件名
result_df.to_excel(file_name, index=False) # 将DataFrame对象输出到Excel中
```
完整的代码如下所示:
```
import os
import glob
import pandas as pd
import numpy as np
import torch
# 定义读取CSV文件的函数
def read_csv(file_path):
# 读取CSV文件
data = pd.read_csv(file_path, header=None)
input_data = torch.tensor(data.values, dtype=torch.float32)
num = input_data.shape[0] - 30
input_data = torch.reshape(input_data[:num], (-1, 30, 1))
# 进行预测
with torch.no_grad():
output = model(input_data.to(device))
pred = output.cpu().numpy()
return pred
# 遍历文件夹中的所有CSV文件
folder_path = '/path/to/folder' # 文件夹路径
result_dict = {'File Name': [], 'Predicted Value': []} # 存储预测结果的字典
for file_path in glob.glob(os.path.join(folder_path, '*.csv')):
file_name = os.path.basename(file_path)
pred = read_csv(file_path)
result_dict['File Name'].append(file_name)
result_dict['Predicted Value'].append(pred.flatten())
# 将结果输出到Excel中
result_df = pd.DataFrame(result_dict)
file_name = 'output.xlsx' # 输出的Excel文件名
result_df.to_excel(file_name, index=False) # 将DataFrame对象输出到Excel中
```
希望对您有帮助!
阅读全文