You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于字典值创建循环函数计算各文件均方误差?

提取字典中文件数据的均方误差解决方案

当然可以实现这个需求!我来给你具体的实现方案,完全符合你的要求:

核心思路

  • 遍历字典的键值对(文件名 + 对应的数据表)
  • 对每个文件提取Total列的数据
  • 计算该列的均方误差(MSE),并按指定格式打印文件名与结果

实现代码

假设你是用pandas读取的文件(从你给出的表格格式来看大概率是这样),下面是完整的可运行代码:

首先导入依赖库:

import pandas as pd
import numpy as np

然后定义循环计算的函数:

def compute_file_mse(file_data_dict, true_values=None):
    """
    遍历字典中的每个文件数据,计算Total列的均方误差并打印结果
    :param file_data_dict: 存储文件数据的字典,键为文件名,值为包含Total列的DataFrame
    :param true_values: 可选,真实值数组,用于计算预测值与真实值的MSE;若不传则计算相对于均值的MSE(即方差)
    """
    # 遍历字典的每个键值对
    for file_name, df in file_data_dict.items():
        # 提取Total列的数值
        total_column = df['Total'].values
        
        # 计算均方误差
        if true_values is not None:
            # 有真实值时,计算预测值与真实值的MSE
            mse = np.mean((total_column - true_values) ** 2)
        else:
            # 无真实值时,计算该列相对于自身均值的MSE(等同于方差)
            mean_total = np.mean(total_column)
            mse = np.mean((total_column - mean_total) ** 2)
        
        # 按要求格式打印结果,保留一位小数(可根据需求调整)
        print(f"{file_name} - Mean Square error is {mse:.1f}")

最后调用函数即可:

# 假设你的文件字典名为d,直接传入函数
compute_file_mse(d)

# 如果你有对应真实值(比如每个日期的预期Total),可以传入真实值数组
# example_true_values = [500, 450, 380, 200]
# compute_file_mse(d, example_true_values)

适配非pandas数据的情况

如果你的数据不是pandas DataFrame(比如是纯列表格式),只需要调整提取Total列的逻辑即可:

# 假设每个字典值是列表,第一行是表头,后续行是数据
total_column = [float(row[1]) for row in data[1:]]

内容的提问来源于stack exchange,提问作者R Sem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:57:07