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

Python遍历文件:计算Baseline列Isc/Voc等指标的平均值

统计Baseline数据列平均值的解决方案

看起来你已经搭了初步的代码框架,不过目前的写法存在一些小问题(比如内层循环重复读取文件行,会导致后续循环读不到内容),我帮你完善一下代码,实现统计test_results.csv中Baseline数据的Isc、Voc、Imp、Vmp、FF和Pmp列的平均值:

完整代码实现

from MyClasses import TestResult

def main():
    test_file = "test_results.csv"
    # 一次性读取所有行并跳过表头,避免重复读取导致的文件指针问题
    with open(test_file, 'r') as inputFile:
        lines = inputFile.readlines()[1:]  # 跳过第一行表头
    
    user = TestResult()
    # 初始化6个目标列的累加器,对应Isc、Voc、Imp、Vmp、FF、Pmp
    column_sums = [0.0] * 6
    valid_count = 0  # 统计符合条件的Baseline数据行数

    for line in lines:
        split_line = line.strip().split(",")
        # 替换成你实际的Baseline判断条件,比如你的代码里写的"Base..."
        if user.getTestSeq(split_line[1]) == "Baseline":
            valid_count += 1
            # 遍历第4到第9列(索引4到9),转换为数值并累加
            for col_idx in range(4, 10):
                try:
                    # 转换为浮点数,避免字符串无法计算
                    value = float(split_line[col_idx])
                    column_sums[col_idx - 4] += value
                except ValueError:
                    print(f"⚠️ 警告:行内容'{line.strip()}'的第{col_idx+1}列不是有效数值,已跳过该值")
    
    # 检查是否有有效数据
    if valid_count == 0:
        print("❌ 未找到任何Baseline数据,请检查判断条件或文件内容")
        return
    
    # 定义列名,方便输出结果
    column_names = ["Isc", "Voc", "Imp", "Vmp", "FF", "Pmp"]
    print("\n📊 Baseline数据各列平均值:")
    for name, total in zip(column_names, column_sums):
        average = total / valid_count
        # 保留4位小数,让结果更清晰
        print(f"{name}: {average:.4f}")

if __name__ == "__main__":
    main()

关键优化点说明

  • 文件读取优化:改用with open自动管理文件资源,并且一次性读取所有行,避免内层循环重复读取导致的文件指针到末尾、后续循环无内容的问题
  • 数据校验:加入try-except捕获数值转换异常,避免文件中存在非数值内容导致程序崩溃
  • 清晰的结果输出:定义列名对应累加器,输出时直接关联列名和平均值,可读性更强
  • 边界处理:增加了无有效数据的判断,避免除以0的错误

注意事项

  • 请确保user.getTestSeq(split_line[1])的返回值和你实际的Baseline标识一致,比如如果你的数据里是"Base...",记得把判断条件改成== "Base..."
  • 如果你的CSV文件使用的不是逗号作为分隔符,需要修改split(",")为对应的分隔符(比如制表符split("\t"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:36:17