现有excel中有两列数据,第一列为epoch,第二列为epoch对应的loss如何使用代码将同一个epoch的loss进行平均值计算并依次放到第三列的单元格中完整代码(注意数值相同的loss平均值只需要记录一次)
时间: 2024-05-11 11:16:53 浏览: 36
好的,我明白了。以下是代码实现:
```python
import pandas as pd
# 读取excel文件
data = pd.read_excel('file.xlsx')
# 创建一个空字典用于存储每个epoch对应的loss值
loss_dict = {}
# 遍历data的每一行
for index, row in data.iterrows():
epoch = row['epoch']
loss = row['loss']
if epoch not in loss_dict:
# 如果该epoch还没有被记录,将其加入字典并初始化该epoch的loss列表
loss_dict[epoch] = [loss]
else:
# 如果该epoch已经被记录,将该epoch对应的loss加入列表
loss_dict[epoch].append(loss)
# 计算每个epoch的平均loss,将结果保存到新的一列中
for epoch, loss_list in loss_dict.items():
avg_loss = sum(loss_list) / len(loss_list)
data.loc[data['epoch'] == epoch, 'avg_loss'] = avg_loss
# 将结果保存至新的excel文件中
data.to_excel('file_with_avg_loss.xlsx', index=False)
```
以上代码会读取名为"file.xlsx"的excel文件,并将同一个epoch的loss值进行平均值计算后放入新的一列中。最后将结果保存至名为"file_with_avg_loss.xlsx"的excel文件中。请确保代码和excel文件在同一个文件夹下。希望这能够解决你的问题!
阅读全文