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

基于csv模块实现Python函数计算CSV指定列数值总和

用csv模块计算CSV指定列的数值总和

原代码存在多处逻辑问题,以下是修正后的可运行实现:

import csv

def calculate_column_sum(file_path, column_name):
    total = 0
    with open(file_path, 'r', newline='', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        # 先校验指定列是否存在
        if column_name not in reader.fieldnames:
            raise ValueError(f"CSV文件中不存在列名: {column_name}")
        for row in reader:
            # 处理非数值内容的异常情况
            try:
                value = float(row[column_name])
                total += value
            except ValueError:
                print(f"警告:行中列{column_name}的内容'{row[column_name]}'不是有效数值,已跳过")
    return total

# 示例调用
target_column = 'salary'
csv_file = 'test.csv'
sum_result = calculate_column_sum(csv_file, target_column)
print(f"列{target_column}的数值总和为: {sum_result}")

核心修改说明:

  • 函数名改为calculate_column_sum,避免和Python内置sum函数重名导致冲突
  • 初始化total变量用于累加总和,解决原代码无累加载体的问题
  • 增加列名存在性校验,提前抛出错误避免后续无效读取
  • 将读取到的字符串列值转为float类型(兼容整数和小数),解决原代码直接对字符串求和的错误
  • 增加异常处理,跳过非数值内容并给出提示,提升代码健壮性
  • 最终返回总和后统一打印,替代原代码循环内重复打印的错误逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:10:55