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

Python计算CSV列平均值结果偏差及除零错误问题求助

问题修复说明

平均值计算偏差的原因

  • 计数器lenl初始值设置错误:初始设为1.0后,每匹配1条符合条件的记录加1,最终计算时分母为「符合条件的记录总数+1」,相当于多计入了1条不存在的样本,导致结果比真实值偏低,完全匹配你遇到的偏差表现。
  • 冗余运算问题:平均值计算放在了循环内部,虽然最终返回的是最后一次计算的全量结果,但属于无意义的重复运算。

初始lenl=0.0触发除零错误的原因

平均值计算逻辑放在了循环体内部,若遍历的第一条记录不符合筛选条件,lenl还未完成递增就会执行除法运算,此时lenl仍为0,直接触发除零报错,哪怕后续存在符合条件的记录,程序也会在第一次循环时崩溃。

额外注意点

原代码中csv_reader属于写法错误,Python标准csv库的读取方法是csv.reader(),且需要传入文件对象而非直接传文件名,否则会触发运行报错。

修复后完整代码

import csv

date_index = 0
temp_index = 2

def average_temperature(weather, filter):
    # 补充文件打开逻辑,编码可根据CSV实际存储格式调整
    thefile = csv.reader(open("Temperatures.csv", encoding="utf-8"))
    suml = 0.0
    lenl = 0.0
    for row in thefile:
        if filter in row[date_index]:
            suml += float(row[temp_index])
            lenl += 1.0
    # 遍历完成后统一计算平均值,同时处理无匹配记录的边界场景
    if lenl == 0:
        # 无匹配记录时可根据业务需求调整返回值,比如返回None或抛出明确提示
        return 0.0
    return suml / lenl

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:24:02